Tensorflow对象检测:使用Adam而不是RMSProp

Tensorflow对象检测:使用Adam而不是RMSProp,tensorflow,object-detection,Tensorflow,Object Detection,我正在用这个[.config文件][1]训练CNN: } 如您所见,有一个rms_道具作为优化器。如果我想用亚当怎么办?我应该如何编辑此文件 如果我是对的,你试图使用Tensorflow提供的对象检测模型和预先训练的网络,对吗? 然后,如果您对编程有一点了解,您可以查看models/research/object\u detection/builders/optimizer\u builder.py,看看哪些是可以使用的优化器,哪些是参数。 相反,如果您只是想要一个现成的解决方案,我就是这样做的

我正在用这个[.config文件][1]训练CNN:

}
如您所见,有一个rms_道具作为优化器。如果我想用亚当怎么办?我应该如何编辑此文件


如果我是对的,你试图使用Tensorflow提供的对象检测模型和预先训练的网络,对吗? 然后,如果您对编程有一点了解,您可以查看models/research/object\u detection/builders/optimizer\u builder.py,看看哪些是可以使用的优化器,哪些是参数。 相反,如果您只是想要一个现成的解决方案,我就是这样做的:

optimizer {
    # momentum_optimizer {
    adam_optimizer: {
      learning_rate: {
        manual_step_learning_rate {
          initial_learning_rate: .0002
          schedule {
            step: 4500
            learning_rate: .0001
          }
          schedule {
            step: 7000
            learning_rate: .00008
          }
          schedule {
            step: 10000
            learning_rate: .00004
          }
        }
      }
      # momentum_optimizer_value: 0.9
    }
    use_moving_average: false
  }

在我(很少)的经验中,我注意到使用与
动量优化器
相同的学习经验会使学习速度过快和/或带来损失,因此我通常会将其减少10倍或更多。我正在努力。:)

请显示并使用您关注的代码或行,并向我们显示有关此问题的更多详细信息。@InfiniteLops没有代码。使用Tensorflow对象检测,您必须使用网络的所有详细信息配置管道:输入大小、小批量、渐变盘、学习率等。然后运行一个脚本(legacy/train.py),该脚本将此.config文件作为输入。因此,主要部分是配置。我希望我说得够清楚了。我的意思是,你可以直接复制和粘贴你所指的行,而不只是指向文件的链接,这样每个人都可以更容易地看到。因为你的问题看起来太短了。好的,我会编辑帖子。非常感谢乔瓦尼的回答。我使用adam optimizer成功地运行了一次新的培训,作为一名程序员,我很高兴终于了解了optimizer_builder.py的工作原理:-)您好,我尝试使用adam optimizer,但我遇到了以下错误:在检查点[[node save/RestoreV2]中找不到密钥Conv/biases/adam(定义于/trung/object detection tf api/models/research/object_detection/model_lib.py:490)]我认为您正在尝试恢复您已经尝试使用其他优化器训练的模型。如果是这种情况,很遗憾,您无法在训练期间更改优化器-即使您正在恢复它。因此,您应该使用其他优化器重新开始训练,看看它是否有效。但我计划在上使用预训练更快的rcnn我自己的数据集,因为我得到了一些关于NaN丢失的错误,我决定将优化器更改为Adam(以前是动量优化器)。我甚至不能更改优化器?:(也许我理解得不好。如果你用动量训练你的网络,然后从你的一个检查点开始,尝试继续使用另一个优化器,这是不可能的。尽管如果你用另一个优化器“从头开始”进行微调(因此没有检查点已经进行了微调),那么它应该会起作用。你的案例是第一个还是第二个?
optimizer {
    # momentum_optimizer {
    adam_optimizer: {
      learning_rate: {
        manual_step_learning_rate {
          initial_learning_rate: .0002
          schedule {
            step: 4500
            learning_rate: .0001
          }
          schedule {
            step: 7000
            learning_rate: .00008
          }
          schedule {
            step: 10000
            learning_rate: .00004
          }
        }
      }
      # momentum_optimizer_value: 0.9
    }
    use_moving_average: false
  }