如何在自定义数据集上从头开始训练初始模型后对测试图像进​​行预测?

Anu*_*nuj 5 machine-learning dataset tensorflow

我刚刚从我的自定义数据集(1675列车图像,400个验证图像,2个类)完成了从头开始训练inceptionv3:

  1. 我不知道如何使用我新训练的模型对我的测试图像进​​行预测.(在哪里指向label_image.py模型)

  2. 我训练有素的模特在哪里得救了?
    关于我的设置/运行的一些元数据:---

  3. 我在train_dir中生成了以下文件:

    • events.out.tfevents.1481980070.airig-灵-7559(4.9GB)
    • graph.pbtxt(18.5MB)
    • 还有一堆model.ckpt- .meta和model.ckpt- .index文件

运行火车脚本后我得到了: -

....
INFO:tensorflow:Stopping Training.
INFO:tensorflow:Finished training! Saving model to disk.
Run Code Online (Sandbox Code Playgroud)

运行eval脚本后,我得到了: -

.....
INFO:tensorflow:Evaluation [0/25]
INFO:tensorflow:Evaluation [1/25]
INFO:tensorflow:Evaluation [2/25]
INFO:tensorflow:Evaluation [3/25]
INFO:tensorflow:Evaluation [5/25]
INFO:tensorflow:Evaluation [5/25]
INFO:tensorflow:Evaluation [6/25]
INFO:tensorflow:Evaluation [7/25]
INFO:tensorflow:Evaluation [8/25]
INFO:tensorflow:Evaluation [9/25]
INFO:tensorflow:Evaluation [10/25]
INFO:tensorflow:Evaluation [11/25]
INFO:tensorflow:Evaluation [13/25]
INFO:tensorflow:Evaluation [13/25]
INFO:tensorflow:Evaluation [14/25]
INFO:tensorflow:Evaluation [15/25]
INFO:tensorflow:Evaluation [16/25]
INFO:tensorflow:Evaluation [17/25]
INFO:tensorflow:Evaluation [18/25]
INFO:tensorflow:Evaluation [19/25]
INFO:tensorflow:Evaluation [20/25]
INFO:tensorflow:Evaluation [21/25]
INFO:tensorflow:Evaluation [22/25]
INFO:tensorflow:Evaluation [23/25]
INFO:tensorflow:Evaluation [25/25]
I tensorflow/core/kernels/logging_ops.cc:79] eval/Recall@5[1]
I tensorflow/core/kernels/logging_ops.cc:79] eval/Accuracy[1]
INFO:tensorflow:Finished evaluation at 2016-12-19-03:59:04
Run Code Online (Sandbox Code Playgroud)

Sim*_*mdi 0

我新训练的模型保存在哪里?

您的完整 TensorFlow 图(即所有变量、操作、集合等)都保存在.meta文件中。该.cpkt文件是一个检查点文件。该文件包含权重、偏差、梯度和所有其他变量的所有值。

我不知道如何使用新训练的模型对测试图像进​​行预测。(模型的 label_image.py 指向何处)

要恢复训练后的模型,请使用:

withth tf.Session() as sess:    
   saver = tf.train.import_meta_graph('my-model-1000.meta')
   saver.restore(sess,tf.train.latest_checkpoint('./'))
Run Code Online (Sandbox Code Playgroud)

请注意,图层的名称已设置。例如:

out_layer = tf.layers.dense(inputs=layer_1, units=6, name='prediction')
Run Code Online (Sandbox Code Playgroud)

现在您可以使用它进行预测:

sess.run(prediction, feed_dict)
Run Code Online (Sandbox Code Playgroud)

其中预测是网络最后一层的输出变量的名称。