Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.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中具有自身重训练图的Tensorflow问题_Java_Tensorflow - Fatal编程技术网

java中具有自身重训练图的Tensorflow问题

java中具有自身重训练图的Tensorflow问题,java,tensorflow,Java,Tensorflow,我对java上的tf有一个小问题。我用python(1.8.0版)重新训练了新类别的模型,并试图用Java(Intellij、Maven project、Tensorflow 1.1.0版)识别图像。我得到了以下错误 java.lang.IllegalArgumentException:nodededf在Op输出中未提到attr'dictions':T;attr=T:type,允许=[DT_-HALF,DT_-FLOAT,DT_-DOUBLE];attr=步幅:列表(int);attr=use\

我对java上的tf有一个小问题。我用python(1.8.0版)重新训练了新类别的模型,并试图用Java(Intellij、Maven project、Tensorflow 1.1.0版)识别图像。我得到了以下错误

java.lang.IllegalArgumentException:nodededf在Op输出中未提到attr'dictions':T;attr=T:type,允许=[DT_-HALF,DT_-FLOAT,DT_-DOUBLE];attr=步幅:列表(int);attr=use\u cudnn\u on\u gpu:bool,默认值=true;attr=padding:string,allowed=[“相同”,“有效”];attr=data_格式:string,default=“NHWC”,allowed=[“NHWC”,“NCHW”]>;nodededef:module_apply_default/InceptionV3/InceptionV3/Conv2d_1a_3x3/Conv2d=Conv2d[T=DT_FLOAT,data_format=“NHWC”,dilations=[1,1,1,1,1],padding=“VALID”,strips=[1,2,2,1],在gpu=true]上使用_cudnn_(module_apply_default/hub_input/Sub,module_apply_default/InceptionV3/InceptionV3/conv3/2d_1a_ReadVariableOp)。(检查GraphDef解释二进制文件是否与GraphDef生成二进制文件一起处于最新状态。)。

我将Maven中的tf版本更改为1.8.0,以便与python版本相同,然后我得到了这个

  java.lang.IllegalArgumentException: No Operation named [DecodeJpeg/contents] in the Graph
代码中的行:
Tensor result=s.runner().feed(“解码JPEG/contents”,image.fetch(“softmax”).run().get(0)){
h


当我从2015年12月开始使用预训练的inception模型图,而不是我的模型图时,一切都顺利进行,没有错误。有人知道这里发生了什么,我该如何解决吗?我非常感谢您的回答:D谢谢!

从错误消息中,我收集到以下信息:

  • 使用1.8.0创建模型,但使用1.1.0加载模型失败,原因是
    检查GraphDef解释二进制文件是否与GraphDef生成二进制文件最新。
    错误,因为1.8.0二进制文件保存的图形使用了1.1.0中没有的功能。因此,您应该让Java程序使用相同或更高版本的关于TensorFlow作为生成图形的二进制的定义

  • 第二条错误消息表明,模型中输入张量的名称与预训练模型中的名称不同。您希望用适当的名称替换Java程序中的字符串
    DecodeJpeg/contents
    。很难说它是什么,因为它取决于程序的详细信息。但是,如果您可以计算出为
    会话的
    feed\u dict
    参数提供的张量的名称。在Python中运行
    ,然后在Java中提供

希望有帮助