我通过将expansion_size
回购的research/slim/nets/mobilenet/mobilenet_v2.py
中的tensorflow/models
从6更改为4,创建了MobileNetV2功能提取器体系结构的自定义变体。
我希望能够使用model_main.py
脚本来训练SSD + Mobilenet_v2(具有此更改)模型,如对象检测API的running_locally tutorial中所述。
这样做时,我会看到以下错误,这很有意义:
`InvalidArgumentError (see above for traceback): Restoring from checkpoint failed. This is most likely due to a mismatch between the current graph and the graph from the checkpoint. Please ensure that you have not altered the graph expected based on the checkpoint.
要解决此问题:
finetune_checkpoint
中删除了pipeline.config
规范。load_pretrained=True
中将load_pretrained=False
更改为object_detection/model_hparams.py
。--hparams_overrides='load_pretrained=false'
上添加了model_main.py
作为命令行输入参数。尽管有这些,我仍然看到相同的错误。
为什么tensorflow仍在尝试还原检查点。我如何才能做到呢?
答案 0 :(得分:0)
自己找到解决方案。事实证明,即使我已安排它不从管道配置文件中恢复检查点,事实证明内部<textarea id="editor" onchange="showCode();"><p>A paragraph</p></textarea>
对象仍然可以使用指定的tf.Estimator
中的检查点;即使model_dir
的主要用途是作为输出目录,在该目录中也会写入输出检查点。
我在official documentation for tf.Estimator中找到了此信息。以下是相关摘录供参考:
`model_dir:用于保存模型参数,图形等的目录。此目录还可用于将目录中的检查点加载到估算器中,以继续训练先前保存的模型。如果是PathLike对象,则路径将被解析。如果设置为None,则使用config中的model_dir。如果两者都设置,则必须相同。如果两者都为None,则将使用一个临时目录。
我原来的model_dir
中有一个旧的检查点,该检查点在结构上与我的自定义模型不兼容。因此,我看到了错误。要解决该问题,我只需将我的model_dir
更改为指向一个新的空目录即可。希望对遇到类似问题的人有所帮助。