No Operation named [input] in the Graph”错误,同时微调/重新训练 inceptionV1 slim 模型

Posted

技术标签:

【中文标题】No Operation named [input] in the Graph”错误,同时微调/重新训练 inceptionV1 slim 模型【英文标题】:No Operation named [input] in the Graph" error while fine tuning/retraining inceptionV1 slim model 【发布时间】:2017-09-24 15:19:42 【问题描述】:

我在这里尝试根据我自己的数据微调/重新训练 InceptionV1 模型。我能够

    使用this将图像数据转换为TFR格式数据。

    将转换后的数据传递给finetune_inception_v1_on_flowers

    根据上面的脚本文件完成训练和评估,我这里附上日志。

    INFO:tensorflow:global step 1000: loss = 0.1833 (20.37 sec/step) INFO:tensorflow:Stopping Training. 
    INFO:tensorflow:Finished training! Saving model to disk. INFO:tensorflow:Scale of 0 disables regularizer. 
    WARNING:tensorflow:From eval_image_classifier.py:157: streaming_recall_at_k (from tensorflow.contrib.metrics.python.ops.metric_ops) is deprecated and will be removed after 2016-11-08. Instructions for updating: Please use streaming_sparse_recall_at_k, and reshape labels from [batch_size] to [batch_size, 1]. 
        INFO:tensorflow:Evaluating /tmp/flowers-models/inception_v1/all/model.ckpt-1000 
        INFO:tensorflow:Starting evaluation at 2017-04-26-14:59:28 INFO:tensorflow:Restoring parameters from /tmp/flowers-models/inception_v1/all/model.ckpt-1000 
        INFO:tensorflow:Evaluation [1/4] 
        INFO:tensorflow:Evaluation [2/4] 
        INFO:tensorflow:Evaluation [3/4] 
        INFO:tensorflow:Evaluation [4/4] 
        2017-04-26 20:30:23.505265: I tensorflow/core/kernels/logging_ops.cc:79] eval/Recall_5[1] 
        2017-04-26 20:30:23.505420: I tensorflow/core/kernels/logging_ops.cc:79] eval/Accuracy[1] 
        INFO:tensorflow:Finished evaluation at 2017-04-26-15:00:23
    

4.训练过程产生了许多检查点,两个graph.pbtxt文件。我在freeze工具中使用了最新的checkpoint和graph.pbtxt文件,生成了一个.pb文件,根据here的讨论,我使用了以下参数

--input_graph=/../../graph.pbtxt

--output_node_names=InceptionV1/Logits/Predictions/Softmax

 

    现在我正在尝试在 tensorflow 演示应用程序中使用 .pb 文件,方法是在 tensorflow 演示 android 应用程序中对 ClassifierActivity.java 进行一些更改,它向我显示错误,

图表中没有名为 [input] 的操作"

以下是我对ClassifierActivity.java所做的更改

private static final int INPUT_SIZE = 224;//224//299

private static final int IMAGE_MEAN = 117;//117//128

私有静态最终浮点数 IMAGE_STD = 1;//1//128

private static final String INPUT_NAME ="input";//输入

private static final String OUTPUT_NAME ="InceptionV1/Logits/Predictions/Softmax";//输出

private static final String MODEL_FILE ="file:///android_asset/frozen_1000_graph.pb";//tensorflow_inception_graph

private static final String LABEL_FILE ="file:///android_asset/labels.txt";//imagenet_comp_graph_label_strings

    按照上面讨论链接中的建议,我尝试在我的 frozen_1000_graph.pb 上使用 Summarize graph 工具并得到以下输出。

没有发现任何输入。没有发现变量。找到 1 个可能的输出: (名称=InceptionV1/Logits/Predictions/Softmax,op=Softmax)找到 5598451(5.60M)个常量参数,0(0)个变量参数,114个 control_edges 使用的操作类型:472 Const, 230 Mul, 173 Add, 172 Sub, 116 Identity, 114 Sum, 58 Reshape, 58 Conv2D, 57 Rsqrt, 57 Relu, 57 倒数、57 平方、57 平方差、57 均值、57 停止梯度、 13 MaxPool,9 ConcatV2,1 Squeeze,1 RandomUniform,1 Softmax,1 RealDiv, 1 QueueDequeueV2, 1 Floor, 1 FIFOQueueV2, 1 BiasAdd, 1 平均池。

请帮助我了解如何解决此问题

【问题讨论】:

【参考方案1】:

Here 是创建的网络的输入,所以如果你可以添加 images = tf.identity(images, name='Inputs') 将张量命名为网络。

【讨论】:

链接失效 修复断开的链接 @SergioGuadarrama,我不明白如何命名网络。我将 tensorflow 用于 react-native,我得到了同样的错误,但我不知道如何解决它。

以上是关于No Operation named [input] in the Graph”错误,同时微调/重新训练 inceptionV1 slim 模型的主要内容,如果未能解决你的问题,请参考以下文章

hadoop集群报错:There are 0 datanode(s) running and no node(s) are excluded in this operation

(standard input): No keywords in input file

关于Struts2中的错误:例如There is no Action mapped for namespace / and action name product-input.

CXF: No binding operation info while invoking unknown method with params unknown.

No result defined for action cn.crm.action.LinkManAction and result input

No cache could be resolved for……. At least one cache should be provided per cache operation