Tensorflow 对象检测:使用 Adam 而不是 RMSProp
Tensorflow Object Detection: use Adam instead of RMSProp
我正在使用这个 [.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
}
}
As you can see there is a rms_prop as optimizer. What if I would like to use Adam? How am I supposed to edit this file?
如果我是对的,您正在尝试将 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
}
在我的(小)经验中,我注意到使用与 momentum_optimizer
相同的 learning_experience 会使学习速度过快 and/or 带来 NaN 损失,所以我通常将其减少 10次或更多。我正在尝试。 :)
对不起,我迟到了,但我现在正在研究这个领域。
我意识到我们可以在这个目录中检查一些 ADAM 优化器的例子:
Tensorflow/models/research/object_detection/builders/optimizer_builder_tf2_test.py
这是我的 pipeline.config
中没有调度的优化器配置:
optimizer {
adam_optimizer: {
learning_rate: {
constant_learning_rate {
learning_rate: 0.0001
}
}
}
use_moving_average: false
}
我正在使用这个 [.config 文件][1]:
训练 CNNrms_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 }
}
As you can see there is a rms_prop as optimizer. What if I would like to use Adam? How am I supposed to edit this file?
如果我是对的,您正在尝试将 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
}
在我的(小)经验中,我注意到使用与 momentum_optimizer
相同的 learning_experience 会使学习速度过快 and/or 带来 NaN 损失,所以我通常将其减少 10次或更多。我正在尝试。 :)
对不起,我迟到了,但我现在正在研究这个领域。
我意识到我们可以在这个目录中检查一些 ADAM 优化器的例子:
Tensorflow/models/research/object_detection/builders/optimizer_builder_tf2_test.py
这是我的 pipeline.config
中没有调度的优化器配置:
optimizer {
adam_optimizer: {
learning_rate: {
constant_learning_rate {
learning_rate: 0.0001
}
}
}
use_moving_average: false
}