Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.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-从HDFS读取Tensorflow模型(pb文件)_Java_Arrays_Hadoop_Tensorflow_Tensorflow Serving - Fatal编程技术网

Java-从HDFS读取Tensorflow模型(pb文件)

Java-从HDFS读取Tensorflow模型(pb文件),java,arrays,hadoop,tensorflow,tensorflow-serving,Java,Arrays,Hadoop,Tensorflow,Tensorflow Serving,我看到SavedModelBundle.load不会从HDFS读取。 我正在执行以下操作以从HDFS中读取文件作为字节数组,并将其作为图形导入 hdfs = FileSystem.get(new URI(configuration.get("fs.defaultFS")), configuration); if (hdfs.exists(location)) { FSDataInputStream hdfsInputStream = hdfs.open(location)

我看到
SavedModelBundle.load
不会从HDFS读取。 我正在执行以下操作以从HDFS中读取文件作为
字节数组
,并将其作为图形导入

hdfs = FileSystem.get(new URI(configuration.get("fs.defaultFS")), configuration);
    if (hdfs.exists(location)) {
        FSDataInputStream hdfsInputStream = hdfs.open(location);
        int length = (int) hdfs.getFileStatus(location).getLen();
        byte[] model = new byte[hdfsInputStream.available()];
        hdfsInputStream.read(model);

        hdfsInputStream.close();
        final Graph g = new Graph();
        g.importGraphDef(model);
        Session session = new Session(g);
}
我还尝试了
hdfsInputStream.readfully(model)
。它给出了相同的以下错误:

java.lang.IllegalArgumentException: Invalid GraphDef
at org.tensorflow.Graph.importGraphDef(Native Method)
at org.tensorflow.Graph.importGraphDef(Graph.java:130)
at org.tensorflow.Graph.importGraphDef(Graph.java:114)
我的问题是:

  • HDFS是否有一个Java等价物
    SavedModelBundle.load
  • 替代方案是什么?如何将
    .pb
    文件读取为
    字节数组
    并正确导入为tensorflow图形
  • 注意:如果我使用
    SavedModelBundle.load(path)
    函数从本地文件系统读取模型目录,以上所有操作都可以正常工作。从本地,我无法正确读取字节数组并转换为图形。但是,读取
    工作正常,并给出正确的输出