为了让代码用起来更加便利,考虑将训练和测试的函数结合起来。欣赏很多github上的项目后,我发现validation(验证)和infer(推断)往往被写成不同的函数。接下来是我粗浅的分析。
1. validation
在训练的过程中观测验证集的效果。
- 需要知道模型的参数
- 可能采用不同的连接方式
- 不希望新建一张tf.Graph
2. infer
在训练结束后,模型在测试集的应用。
1. 需要知道模型的参数
2. 可能采用不同的连接方式
3. 一定新建一张tf.Graph
3. TFRecord作为数据来源
因此利用 TFRecord 作为数据来源时,可以考虑这种策略:
将 TFRecord 的路径设置为tf.placeholder
record_name = tf.placeholder(tf.string)
通过指定不同的数据集文件,导入同一个模型,从而避免重复开辟新的tf.Graph。
具体的方法见TensorFlow编程指南