图中没有名为 [input] 的操作"微调/重新训练 inceptionV1 超薄模型时出错 [英] No Operation named [input] in the Graph" error while fine tuning/retraining inceptionV1 slim model

查看:42
本文介绍了图中没有名为 [input] 的操作"微调/重新训练 inceptionV1 超薄模型时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

  1. 使用 这个.

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

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

    INFO:tensorflow:global step 1000: loss = 0.1833 (20.37 sec/step) INFO:tensorflow:Stopping Training.信息:tensorflow:完成训练!将模型保存到磁盘.INFO:tensorflow:Scale of 0 禁用正则化器.警告:tensorflow:来自 eval_image_classifier.py:157:streaming_recall_at_k(来自 tensorflow.contrib.metrics.python.ops.metric_ops)已被弃用,并将在 2016 年 11 月 8 日之后移除.更新说明:请使用streaming_sparse_recall_at_k,将labels从[batch_size]改成[batch_size, 1].信息:tensorflow:评估/tmp/flowers-models/inception_v1/all/model.ckpt-1000信息:tensorflow:在 2017-04-26-14:59:28 开始评估信息:tensorflow:从/tmp/flowers-models/inception_v1/all/model.ckpt-1000 恢复参数信息:张量流:评估 [1/4]信息:tensorflow:评估 [2/4]信息:tensorflow:评估 [3/4]信息:张量流:评估 [4/4]2017-04-26 20:30:23.505265:我 tensorflow/core/kernels/logging_ops.cc:79] eval/Recall_5[1]2017-04-26 20:30:23.505420:我 tensorflow/core/kernels/logging_ops.cc:79] eval/Accuracy[1]信息:tensorflow:完成评估于 2017-04-26-15:00:23

4.训练过程产生了很多checkpoint,两个graph.pbtxt文件.根据讨论,我使用了最新的检查点和冻结工具中的 graph.pbtxt 文件并生成了一个 .pb 文件这里,我使用了以下参数

<块引用>

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

--output_node_names=InceptionV1/Logits/Predictions/Softmax

  1. 现在我尝试在 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

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";//输出

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. 正如上面讨论链接中所建议的,我在我的frozen_1000_graph.pb 上尝试了汇总图形工具,并得到了以下输出.

<块引用>

没有发现输入.没有发现变数.找到 1 个可能的输出:(name=InceptionV1/Logits/Predictions/Softmax, op=Softmax) 找到5598451 (5.60M) const 参数,0 (0) 可变参数,和 114control_edges 使用的操作类型:472 Const、230 Mul、173 Add、172 Sub、116身份,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、1RealDiv, 1 QueueDequeueV2, 1 Floor, 1 FIFOQueueV2, 1 BiasAdd, 1平均池.

请帮助我理解,我该如何解决这个问题.

解决方案

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

I am trying to finetune/retrain InceptionV1 model here, on my own data. I was able to

  1. Convert the Image data to TFR format data using this.

  2. Pass the converted data to finetune_inception_v1_on_flowers

  3. Complete the training and evaluation in according to the script file above, I am attaching the logs here.

    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 training process genertaed many checkpoints, two graph.pbtxt files. I used the latest checkpoint and the graph.pbtxt file in the freeze tool and generated a .pb file, according to the discussion here, I used following parameters

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

--output_node_names=InceptionV1/Logits/Predictions/Softmax

 

  1. Now I am trying to use the .pb file in tensorflow demo application, by making few changes toClassifierActivity.java in tensorflow demo android app and it shows an error to me,

No Operation named [input] in the Graph"

following are the changes I made 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. As suggested in discussion link above, I tried Summarize graph tool on my frozen_1000_graph.pb and got the following output.

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.

Please help me understand, how I can fix this issue.

解决方案

Here are the input to the network created, so if you can add images = tf.identity(images, name='Inputs') to name the tensor to the network.

这篇关于图中没有名为 [input] 的操作"微调/重新训练 inceptionV1 超薄模型时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆