【问题标题】:Tensorflow Object Detection API ValueError: No variables to saveTensorflow 对象检测 API ValueError:没有要保存的变量
【发布时间】:2018-05-30 08:20:42
【问题描述】:

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

我该如何解决这个问题?

【问题讨论】:

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


    【解决方案1】:

    ? 测试解决方案

    fine_tune_checkpoint_type: "detection" 添加到您的*.config 文件中的train_config: { ... } 部分。

    ⭐ 示例

    train_config: {
      ...
      fine_tune_checkpoint: "./pre_trained_model/model.ckpt"
      fine_tune_checkpoint_type:  "detection"
      ...
    }
    

    ?‍? 在ssd_mobilenet_v1_quantized_300x300_coco14_sync 模型上测试。

    【讨论】:

    • 为我工作,结束了长达一小时的调试会话,谢谢!
    【解决方案2】:

    正在训练这个模型http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v2_coco_2018_03_29.tar.gz

    遇到同样的错误。不太喜欢别人设置from_detection_checkpoint: false的方案。

    已通过在模型附带的pipeline.configtrain_config 中添加load_all_detection_checkpoint_vars: true 字段来修复。

    我还添加了from_detection_checkpoint: true,因为它不存在,不确定它是否与解决方案相关。

    fine_tune_checkpoint: "path_to_model_ckpt/model.ckpt"
    from_detection_checkpoint: true
    load_all_detection_checkpoint_vars: true # this here fixed it
    num_steps: 200000 # irrelevant
    fine_tune_checkpoint_type: "detection"
    

    【讨论】:

      【解决方案3】:

      最新款有这个问题,解决这个问题:

      转到模型的“.config”文件并在训练部分更改 from_detection_checkpoint: true 为假

      它会起作用的。

      快乐编码:)

      【讨论】:

      • 我的 pipeline.config 和我的 ssd_mobilenet_v2_coco.config 文件有一个“from_detection_checkpoint:”布尔值——我在“fine_tune_checkpoint:”下添加了这个,并将其更改为 false,但仍然存在这个问题。有什么想法吗?
      【解决方案4】:

      我在尝试使用 inception v2 训练 fast-rcnn 时遇到了同样的错误。原来我的模型配置文件中有错误的微调检查点。在我链接到模型的适当检查点后,错误就消失了。

      【讨论】:

        【解决方案5】:

        我有同样的错误。通过使用不同的检查点解决。

        【讨论】:

          【解决方案6】:

          您应该使用检查点或从 slim.learning.train 参数中删除“init_fn=init_fn”,并从 trainer 中删除“initializer_fn”变量。 您可以从 trainer 的 393 行左右访问所有这些

          【讨论】:

            猜你喜欢
            • 2016-12-02
            • 1970-01-01
            • 2018-11-07
            • 1970-01-01
            • 1970-01-01
            • 2018-12-26
            • 2018-01-17
            • 2017-12-02
            • 1970-01-01
            相关资源
            最近更新 更多