在精确调整/重新训练inceptionV1苗条模型

时间:2017-04-27 02:03:29

标签: machine-learning tensorflow protocol-buffers models

我试图在我自己的数据上微调/重新训练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. 4.培训过程产生了许多检查点,两个graph.pbtxt文件。我在冻结工具中使用了最新的checkpoint和graph.pbtxt文件并生成了一个.pb文件,根据讨论here,我使用了以下参数

      

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

         

    - output_node_names = InceptionV1 / Logits /预测/使用SoftMax

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

      没有名为[输入]的操作在图表

      以下是我对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”; // 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. 正如上面的讨论链接中所建议的那样,我在freeze_1000_graph.pb上尝试了Summarize graph工具并获得了以下输出。
      2.   

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

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

1 个答案:

答案 0 :(得分:2)

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