我们可以使用Estimator和RunConfig来保存模型的许多检查点。
默认情况下,ckpt-1会使用最新的步骤200,可以加载
my_checkpointing_config = tf.estimator.RunConfig(
save_checkpoints_secs = 20*60, # Save checkpoints every 20 minutes.
keep_checkpoint_max = 10, # Retain the 10 most recent checkpoints.
)
classifier = tf.estimator.DNNClassifier(
feature_columns=my_feature_columns,
hidden_units=[10, 10],
n_classes=3,
model_dir='models/iris',
config=my_checkpointing_config)
$ ls -1 models/iris
checkpoint
events.out.tfevents.timestamp.hostname
graph.pbtxt
model.ckpt-1.data-00000-of-00001
model.ckpt-1.index
model.ckpt-1.meta
model.ckpt-200.data-00000-of-00001
model.ckpt-200.index
model.ckpt-200.meta发布于 2018-08-27 14:54:49
tf.estimator.Estimator.evaluate和tf.estimator.Estimator.predict都有一个checkpoint_path参数。您应该能够在这里提供到model.ckpt-1的路径,以便使用这个检查点进行评估。
注意,这个参数是在最近的TF更新中添加的(可能是1.7或1.8,不能确定),所以如果您使用的是过时的版本,则可能无法使用此参数。还有一种令人讨厌的选择:在model_dir中应该有一个名为checkpoint的文件。这个文件的第一行应该是
model_checkpoint_path: "model.ckpt-xxxxxx"其中xxxxxx是最新检查点的步骤数(在您的例子中为200个)。您可以手动将该行更改为希望Estimator加载的任何检查点。但是,您可能希望在以后将其更改,或者如果您想继续培训该模型,可能会遇到问题。
https://stackoverflow.com/questions/52041764
复制相似问题