找不到适用于操作系统的 Tensorflow 原生库



我正在尝试将用Java编写的图像分类器程序导出到具有所有依赖项(当然包括Tensorflow)的可运行jar文件中,以便它可以在外部计算机上工作。

jar 完成后,我尝试在多台 Windows 7(或更新的)计算机上运行它:在其中一半计算机上,程序运行正常,但在另一半(包括我的)上,则不然:事实上,当由于 GUI 上的按钮触发图像检测事件时,命令行上会出现错误:

Exception in thread "Awt-EventQueue-0" java.lang.UnsatisfiedLinkError: Cannot find Tensorflow native library for OS: windows, architecture: x86

另外,当我再次单击按钮时,会抛出一个新错误:

Exception in thread "Awt-EventQueue-0" java.lang.NoClassDefFoundError: Could not initialize class org.tensorflow.Tensor

我测试jar的每台计算机都至少安装了最新的JRE版本。一些 jar 工作的电脑甚至没有以任何方式安装 Python 和/或 Tensorflow,而我的电脑则正确安装了所有内容。

这是我的pom.xml:https://hastebin.com/oxidunasaw.xml

你能帮我弄清楚问题是什么,并给我解决方案,以使jar在每台计算机上工作吗?

感谢您的帮助。

TensorFlow Java发行版包含一个(依赖于平台/架构的)本机库。更多信息,请参阅从 TensorFlow Java 示例链接的幻灯片的扬声器节点。

错误消息表明,由于某种原因,找不到本机库,或者打包在org.tensorflow:libtensorflow_jniMaven 项目中的库与正在运行的操作系统版本/体系结构不兼容。发生这种情况的原因有多种,例如 libc 共享库的版本不兼容。

您可以通过运行带有-Dorg.tensorflow.NativeLibrary.DEBUG=1的 JVM 来获取更多调试信息,这将打印出有关打包问题的诊断信息。

希望有帮助。

附言我还注意到您使用的是Java API的1.1.0-rc2版本,该版本已有近一年的历史。您可能希望移动到较新的版本。

最新更新