是否可以在某个检查点添加更多图像并从该检查点恢复训练?

时间:2017-12-04 16:24:06

标签: tensorflow object-detection object-detection-api

我正在评估tensorflow对象检测API。 我查看了一些我在互联网上发现的文章,我能够训练模型并成功评估对象检测。

当我开始训练时,大约有100张图像被贴上标签。 我想在TFrecord上添加两三个新闻图片。 添加这些图像后,我应该删除我的model_output目录并启动train.py还是可以在现有检查点之上执行此操作?

2 个答案:

答案 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的文件,而不是首次开始训练时使用的原始检查点。

希望您发现这很有帮助。如果您遇到任何问题,请告诉我