tensorflow - 张量流的估计器如何加载模型的特定步骤而不是最新的?
问题描述
我们可以使用 Estimator 和RunConfig
.
classifier
eval 将200
默认使用最新的步骤,
我可以加载ckpt-1
吗?
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
解决方案
两者tf.estimator.Estimator.evaluate
都有tf.estimator.Estimator.predict
争论checkpoint_path
。您应该能够提供到model.ckpt-1
此处的路径以使用此检查点进行评估。
请注意,此参数是在最近的 TF 更新中添加的(可能是 1.7 或 1.8,不确定),因此如果您使用的是过时的版本,则可能没有此参数可用。有一个 hacky 替代方案:model_dir
应该有一个名为checkpoint
. 这个文件的第一行应该是
model_checkpoint_path: "model.ckpt-xxxxxx"
其中xxxxxx
是最新检查点的步骤数(在您的情况下为 200)。您可以手动将此行更改为您想要Estimator
加载的任何检查点。但是,您之后可能希望将其更改回来,或者如果您想继续训练模型,您可能会遇到问题。
推荐阅读
- jquery - 将自定义 JS 文件导入基于 JQuery 构建的 AngularJS 4
- c# - Dynamics 365 中的关系元数据
- azure - 是否可以通过 Azure 管道将选择性数据从文件加载到 ADW
- python - 具有 QuickSort 风格的 QuickSelect 算法
- java - Facebook restFB 不再工作了?
- sql - 在 postgres 中存储一个二维数组
- ios - 从 Swift 中的 URL 中删除所有路径组件
- vb.net - 取消 DataGridViewCellValidatingEventArgs 如何用自身替换所有事件处理程序?
- r - 开发工具路径长度
- c++ - 从右到左隔离字符串。C++