图表中没有名为 [input] 的操作”错误,但很好 tuning/retraining inceptionV1 slim 模型

No Operation named [input] in the Graph" error while fine tuning/retraining inceptionV1 slim model

我正在尝试 finetune/retrain InceptionV1 模型,使用我自己的数据。我能够

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

  2. 将转换后的数据传递给finetune_inception_v1_on_flowers

  3. 按照上面的脚本文件完成训练和评估,我在这里附上日志。

    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.The 训练过程生成了很多检查点,两个 graph.pbtxt 文件。我使用了最新的检查点和冻结工具中的 graph.pbtxt 文件并生成了一个 .pb 文件,根据讨论 here,我使用了以下参数

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

--output_node_names=InceptionV1/Logits/Predictions/Softmax

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

No Operation named [input] in the Graph"

以下是我所做的更改toClassifierActivity.java

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

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

private static final float IMAGE_STD = 1;//1//128

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

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

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

  1. 正如上面讨论 link 中所建议的那样,我在我的 frozen_1000_graph.pb 上尝试了汇总图形工具并得到了以下输出。

No inputs spotted. No variables spotted. Found 1 possible outputs: (name=InceptionV1/Logits/Predictions/Softmax, op=Softmax) Found 5598451 (5.60M) const parameters, 0 (0) variable parameters, and 114 control_edges Op types used: 472 Const, 230 Mul, 173 Add, 172 Sub, 116 Identity, 114 Sum, 58 Reshape, 58 Conv2D, 57 Rsqrt, 57 Relu, 57 Reciprocal, 57 Square, 57 SquaredDifference, 57 Mean, 57 StopGradient, 13 MaxPool, 9 ConcatV2, 1 Squeeze, 1 RandomUniform, 1 Softmax, 1 RealDiv, 1 QueueDequeueV2, 1 Floor, 1 FIFOQueueV2, 1 BiasAdd, 1 AvgPool.

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

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