Tensorflow对象检测API ValueError:无需保存的变量

时间:2018-05-30 08:20:43

标签: tensorflow python-3.6 google-colaboratory object-detection-api

我正在尝试使用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]

如何解决此问题?

6 个答案:

答案 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行附近访问所有这些内容