首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java运行tensorflow

使用java运行tensorflow
EN

Stack Overflow用户
提问于 2017-11-24 16:30:02
回答 3查看 2.8K关注 0票数 2

我在使用java运行tensorflow时遇到了一些问题。我使用的是数据自动化系统8和CuDNN 6。

当我尝试运行示例java程序时,我尝试遵循以下快速启动指令:java,并获得以下错误消息:

代码语言:javascript
复制
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)

jni目录包含以下内容:

  • libtensorflow_framework.so
  • libtensorflow_jni.so
  • 许可证

然后,我尝试按照以下建议从源代码安装二进制文件:https://github.com/tensorflow/tensorflow/blob/master/tensorflow/java/README.md

这是the:org.tensorflow.NativeLibrary.DEBUG=1的输出

代码语言:javascript
复制
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

但是,当我尝试运行示例Java程序时,仍然会得到相同的错误消息。

我做错什么了??

任何帮助都将不胜感激!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-11-24 16:55:06

误差

无法找到操作系统的TensorFlow本机库: linux,体系结构: x86_64。

清楚地表明库对您的软件不可见。

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

代码语言:javascript
复制
export LD_LIBRARY_PATH=/the/absolute/path/to/your/library
java -cp libtensorflow-1.4.0.jar:. -Djava.library.path=./jni HelloTF

还要确保您在包含/jni目录的同一个目录中运行java命令。

票数 2
EN

Stack Overflow用户

发布于 2018-08-24 11:18:53

对于那些在这里着陆并面临同样问题的人来说。

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

  • 程序参数->模型/图像/示例-400x288.jpg
  • VM参数-> -Djava.Library ary.path=./jni

就像这张截图:

票数 0
EN

Stack Overflow用户

发布于 2019-10-21 11:55:06

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

  1. 下载并将tensorflow JNI文件复制到:/usr/lib/tensorflow
  2. 下载并将所需的tensorflow Lib文件复制到: /usr/lib/tensorflow 用java编译
  3. 编译java文件
代码语言:javascript
复制
javac -cp /usr/lib/tensorflow/libtensorflow-1.14.0.jar HelloTensorFlow.java
  1. 运行java文件:
代码语言:javascript
复制
java -cp /usr/lib/tensorflow/libtensorflow-1.14.0.jar:. -Djava.library.path=/usr/lib/tensorflow/ HelloTensorFlow

使用MAVEN

  1. 首先,我们应该导出LD_LIBRARY_PATH:
代码语言:javascript
复制
export LD_LIBRARY_PATH=/usr/lib/tensorflow
  1. 然后运行maven构建命令:
代码语言:javascript
复制
mvn -q compile exec:java

我希望它能帮到你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47477069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档