Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
向Java项目Netbeans添加Tensorflow_Java_Netbeans_Dll_Tensorflow - Fatal编程技术网

向Java项目Netbeans添加Tensorflow

向Java项目Netbeans添加Tensorflow,java,netbeans,dll,tensorflow,Java,Netbeans,Dll,Tensorflow,我正试图根据此链接中的建议安装Tensorflow for java 说明中说明了如何下载.jar文件,以及一个单独的.dll文件。我已经将jar文件包含到netbeans项目中,并设置了上面网页上列出的代码 package tensorflowtest; import org.tensorflow.Graph; import org.tensorflow.Session; import org.tensorflow.Tensor; import org.tensorflow.TensorFl

我正试图根据此链接中的建议安装Tensorflow for java

说明中说明了如何下载.jar文件,以及一个单独的.dll文件。我已经将jar文件包含到netbeans项目中,并设置了上面网页上列出的代码

package tensorflowtest;
import org.tensorflow.Graph;
import org.tensorflow.Session;
import org.tensorflow.Tensor;
import org.tensorflow.TensorFlow;


public class TensorFlowTest {

    public static void main(String[] args) throws Exception {
    try (Graph g = new Graph()) {
      final String value = "Hello from " + TensorFlow.version();

      // Construct the computation graph with a single operation, a constant
      // named "MyConst" with a value "value".
      try (Tensor t = Tensor.create(value.getBytes("UTF-8"))) {
        // The Java API doesn't yet include convenience functions for adding operations.
        g.opBuilder("Const", "MyConst").setAttr("dtype", t.dataType()).setAttr("value", t).build();
      }

      // Execute the "MyConst" operation in a Session.
      try (Session s = new Session(g);
           Tensor output = s.runner().fetch("MyConst").run().get(0)) {
        System.out.println(new String(output.bytesValue(), "UTF-8"));
      }
    }
  }

} 
运行此命令时,我会得到错误

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot find TensorFlow native library for OS: windows, architecture: x86. See https://github.com/tensorflow/tensorflow/tree/master/java/README.md for possible solutions (such as building the library from source).
    at org.tensorflow.NativeLibrary.load(NativeLibrary.java:66)
    at org.tensorflow.TensorFlow.init(TensorFlow.java:27)
    at org.tensorflow.TensorFlow.<clinit>(TensorFlow.java:31)
    at org.tensorflow.Graph.<clinit>(Graph.java:194)
    at tensorflowtest.TensorFlowTest.main(TensorFlowTest.java:11)
线程“main”java.lang.UnsatisfiedLinkError中出现异常:找不到操作系统windows、体系结构x86的TensorFlow本机库。看见https://github.com/tensorflow/tensorflow/tree/master/java/README.md 寻找可能的解决方案(例如从源代码构建库)。 位于org.tensorflow.nativellibrary.load(nativellibrary.java:66) 位于org.tensorflow.tensorflow.init(tensorflow.java:27) 位于org.tensorflow.tensorflow(tensorflow.java:31) 位于org.tensorflow.Graph.(Graph.java:194) 在tensorflowtest.tensorflowtest.main(tensorflowtest.java:11) 我知道这是因为找不到.dll文件,但我已尝试将.dll放在所有根文件中,尝试将dll添加到源和/或库中,并尝试添加命令-Djava.library.path=。在Netbeans中添加到我的VM选项,并尝试添加System.setProperty(“java.library.path”,”);到我的主要职能开始时,一切都没有成功。我还尝试以“C:\Path\to\File”的形式提供dll的直接路径


如有任何关于如何解决此问题的建议,将不胜感激

将tensorflow_jni.dll文件放在项目文件夹的根目录中似乎是可行的,如下所述:


如果文件位于运行它的目录中,那么它应该首先工作(我是否遗漏了什么?) 在VM选项下设置正确的绝对路径对我很有用:

-Djava.library.path="C:\Program Files\Java\tensorflow"
这样,您就不必在项目之间来回复制DLL

另见: