我正在尝试使用tensorflow对象检测api训练自定义对象检测模型。出于培训目的,我使用了用于训练的腌制图像数据集,并且使用ssd_mobilenet_v1_coco
作为模型。当我开始训练时,它给了我这个错误。
Traceback (most recent call last):
File "train.py", line 184, in <module>
tf.app.run()
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/platform/app.py", line 126, in run
_sys.exit(main(argv))
File "train.py", line 180, in main
graph_hook_fn=graph_rewriter_fn)
File "/content/models/research/object_detection/trainer.py", line 381, in train
init_saver = tf.train.Saver(available_var_map)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/saver.py", line 1338, in __init__
self.build()
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/saver.py", line 1347, in build
self._build(self._filename, build_save=True, build_restore=True)
File "/usr/local/lib/python3.6/dist-packages/tensorflow/python/training/saver.py", line 1372, in _build
raise ValueError("No variables to save")
ValueError: No variables to save
完整的错误代码可以在这里找到......
[https://gist.github.com/mpgovinda/1f59f7de7873f6ec4c4426b79dc6827a][1]
如何解决此问题?
答案 0 :(得分:2)
正在训练此模型http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz
遇到相同的错误。不太喜欢其他人设置from_detection_checkpoint: false
的解决方案。
通过在模型随附的load_all_detection_checkpoint_vars: true
的{{1}}的{{1}}中添加train_config
字段进行修复。
我还添加了pipeline.config
,因为它不存在,不确定是否与解决方案有关。
from_detection_checkpoint: true
答案 1 :(得分:1)
最新型号存在此问题,可以解决此问题:
转到模型的“ .config”文件,然后在训练部分进行更改
from_detection_checkpoint: true
为假
它将起作用。
快乐编码:)
答案 2 :(得分:1)
尝试将winscp.com /ini=nul /log=ftp.log /command ^
"open ftp://user:password@192.168.31.93/" ^
"cd /remote/directory" ^
"mget *" ^
"exit"
行添加到fine_tune_checkpoint_type: "detection"
文件中的train_config {
部分中。
示例:
*.config
在
train_config: { ... fine_tune_checkpoint: "./pre_trained_model/model.ckpt" fine_tune_checkpoint_type: "detection" ... }
模型上进行了测试。
答案 3 :(得分:0)
在尝试使用初始v2训练更快的rcnn时,我遇到了同样的错误。事实证明我的模型配置文件中有错误的微调检查点。在我链接到模型的相应检查点后,错误消失了。
答案 4 :(得分:0)
我有同样的错误。通过使用其他检查点解决。
答案 5 :(得分:0)
您应该使用检查点或从slimer.learning.train参数中删除“ init_fn = init_fn”,并从Trainer中删除“ initializer_fn”变量。 您可以从Trainer的393行附近访问所有这些内容