使用java运行tensorflow时出现问题

使用java运行tensorflow时出现问题,java,tensorflow,Java,Tensorflow,我在用java运行tensorflow时遇到一些问题。我正在使用CUDA 8和CuDNN 6 我尝试按照此处的快速入门说明进行操作:并在尝试运行示例java程序时收到以下错误消息: java -cp libtensorflow-1.4.0.jar:. -Djava.library.path=./jni HelloTF Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native

我在用java运行tensorflow时遇到一些问题。我正在使用CUDA 8和CuDNN 6

我尝试按照此处的快速入门说明进行操作:并在尝试运行示例java程序时收到以下错误消息:

java -cp libtensorflow-1.4.0.jar:. -Djava.library.path=./jni HelloTF

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: linux, architecture: x86_64. See https://github.com/tensorflow/tensorflow/tree/master/tensorflow/java/README.md for possible solutions (such as building the library from source). Additional information on attempts to find the native library can be obtained by adding org.tensorflow.NativeLibrary.DEBUG=1 to the system properties of the JVM.
    at org.tensorflow.NativeLibrary.load(NativeLibrary.java:75)
    at org.tensorflow.TensorFlow.init(TensorFlow.java:66)
    at org.tensorflow.TensorFlow.<clinit>(TensorFlow.java:70)
    at org.tensorflow.Graph.<clinit>(Graph.java:258)
    at HelloTF.main(HelloTF.java:8)
但是,当我尝试运行示例Java程序时,仍然会收到相同的错误消息

我做错了什么

任何帮助都将不胜感激

错误

找不到操作系统linux、体系结构x86_64的TensorFlow本机库

明确说明该库对您的软件不可见

为了使Java类可以使用它,请尝试这样做(显然是在同一个shell中):


另外,请确保您是从包含
/jni
目录的同一目录运行java命令。

对于那些在此处登录并面临相同问题的用户

您可能正在尝试从eclipse运行程序。然后,您必须转到运行配置>参数并传递此参数:

  • 程序参数->模型/ 图像/示例-400x288.jpg

  • VM参数->-Djava.library.path=./jni

如以下截图所示:

当人们(像我一样)从python来到java世界时,一切都很奇怪!以下是我如何解决有关所有链接错误的问题: “我想你们已经有了一个简单的hello Tensorflow项目,”他解释道

  • 并将tensorflow JNI文件复制到:/usr/lib/tensorflow
  • 并将所需版本的tensorflow Lib jar文件复制到:/usr/Lib/tensorflow

    用java编译
  • 编译java文件

  • javac-cp/usr/lib/tensorflow/libtensorflow-1.14.0.jar HelloTensorFlow.java
    
  • 运行java文件:
  • java-cp/usr/lib/tensorflow/libtensorflow-1.14.0.jar:-Djava.library.path=/usr/lib/tensorflow/HelloTensorFlow
    
    使用MAVEN
  • 首先,我们应该导出LD_LIBRARY_路径:
  • export LD\u LIBRARY\u PATH=/usr/lib/tensorflow
    
  • 然后运行maven build命令:
  • mvn-q编译执行:java
    

    我希望它能帮助你

    你使用的是哪个操作系统?我正在运行Ubuntu 16.04。谢谢你的回复。我已尝试将export LD_LIBRARY_PATH=/PATH/添加到/tensorflow,但问题仍然存在。我已将调试输出添加到问题中。请避免将文件放入路径:)啊,我不知道需要添加哪个库!我添加了export-LD\u-LIBRARY\u-PATH=/PATH/to/cuda,成功了!虽然我在今天早些时候安装cuda时就应该这么做,但我对tensorflow还不熟悉,从Java maven方法开始。我希望我不需要安装TensorFlow本身。在得到与上面相同的错误后,我得出结论,我仍然需要安装TF。我说得对吗?@hsmit我已经试过了,而且效果很好。正确地遵循(并考虑投票:)
    org.tensorflow.NativeLibrary: tryLoadLibraryFailed: /path/to/jni/libtensorflow_jni.so: libcublas.so.8.0: cannot open shared object file: No such file or directory
    org.tensorflow.NativeLibrary: jniResourceName: org/tensorflow/native/linux-x86_64/libtensorflow_jni.so
    org.tensorflow.NativeLibrary: frameworkResourceName: org/tensorflow/native/linux-x86_64/libtensorflow_framework.so
    
    export LD_LIBRARY_PATH=/the/absolute/path/to/your/library
    java -cp libtensorflow-1.4.0.jar:. -Djava.library.path=./jni HelloTF