Tensorflow对象检测:使用Adam代替RMSProp

Gia*_*oli 3 object-detection tensorflow

我正在使用此[.config文件] [1]训练CNN:

rms_prop_optimizer: {
    learning_rate: {
      exponential_decay_learning_rate {
        initial_learning_rate: 0.004
        decay_steps: 800720
        decay_factor: 0.95
      }
    }
   momentum_optimizer_value: 0.9
   decay: 0.9
   epsilon: 1.0
}   
Run Code Online (Sandbox Code Playgroud)

}
正如你可以看到有一个rms_prop的优化。如果我想使用亚当怎么办?我应该如何编辑该文件?

Gio*_*lin 6

如果我是对的,那么您正在尝试将Object_detection模型与Tensorflow提供的经过预训练的网络一起使用,对吗?然后,如果您了解一些编程知识,则可以看看models / research / object_detection / builders / optimizer_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
  }
Run Code Online (Sandbox Code Playgroud)

在我的(一点)经验中,我注意到使用与momentum_optimizer将学习速度过快和/或带来NaN损失相同的learning_experience ,因此我通常将其减少10倍或更多倍。我正在尝试。:)