我正在评估tensorflow对象检测API。 我查看了一些我在互联网上发现的文章,我能够训练模型并成功评估对象检测。
当我开始训练时,大约有100张图像被贴上标签。 我想在TFrecord上添加两三个新闻图片。 添加这些图像后,我应该删除我的model_output目录并启动train.py还是可以在现有检查点之上执行此操作?
答案 0 :(得分:0)
Tensorflow支持从检查点恢复状态,如官方文档中所示:
https://www.tensorflow.org/programmers_guide/saved_model
# Create some variables.
v1 = tf.get_variable("v1", shape=[3])
v2 = tf.get_variable("v2", shape=[5])
# Add ops to save and restore all the variables.
saver = tf.train.Saver()
# Later, launch the model, use the saver to restore variables from disk, and
# do some work with the model.
with tf.Session() as sess:
# Restore variables from disk.
saver.restore(sess, "/tmp/model.ckpt")
print("Model restored.")
# Check the values of the variables
print("v1 : %s" % v1.eval())
print("v2 : %s" % v2.eval())
如果您不添加或删除类,则无需重新启动模型。但请注意在您之前的培训期间学习率是否发生了变化。如果您的计划程序积极地降低了学习速度,则由于学习速度太小,您可能无法学习新图像。
答案 1 :(得分:0)
您可以生成一个新的train.record
文件,其中包含希望对其进行训练的新图像,并且可以使用以前保存的检查点来恢复训练。您所需要做的就是将input_path
的{{1}}指向新的tf_record_input_reader
文件,并将train.record
指向类似fine_tune_checkpoint
的文件,而不是首次开始训练时使用的原始检查点。
希望您发现这很有帮助。如果您遇到任何问题,请告诉我