gpt4 book ai didi

python - Keras:改变学习率

转载 作者:行者123 更新时间:2023-11-30 21:53:12 24 4
gpt4 key购买 nike

在使用不同的学习率训练模型后,我正在尝试更改模型的学习率。

我读到here , here , here还有一些我什至找不到的地方。

我尝试过:

model.optimizer.learning_rate.set_value(0.1)
model.optimizer.lr = 0.1
model.optimizer.learning_rate = 0.1
K.set_value(model.optimizer.learning_rate, 0.1)
K.set_value(model.optimizer.lr, 0.1)
model.optimizer.lr.assign(0.1)

...但是它们都不起作用!我不明白为什么这么简单的事情会引起如此困惑。我错过了什么吗?

编辑:工作示例

这是我想做的一个工作示例:

from keras.models import Sequential
from keras.layers import Dense
import keras
import numpy as np

model = Sequential()

model.add(Dense(1, input_shape=(10,)))

optimizer = keras.optimizers.Adam(lr=0.01)
model.compile(loss='mse',
optimizer=optimizer)

model.fit(np.random.randn(50,10), np.random.randn(50), epochs=50)

# Change learning rate to 0.001 and train for 50 more epochs

model.fit(np.random.randn(50,10), np.random.randn(50), initial_epoch=50, epochs=50)

最佳答案

您可以按如下方式更改学习率:

from keras import backend as K
K.set_value(model.optimizer.learning_rate, 0.001)

包含在您的完整示例中,如下所示:

from keras.models import Sequential
from keras.layers import Dense
from keras import backend as K
import keras
import numpy as np

model = Sequential()

model.add(Dense(1, input_shape=(10,)))

optimizer = keras.optimizers.Adam(lr=0.01)
model.compile(loss='mse', optimizer=optimizer)

print("Learning rate before first fit:", model.optimizer.learning_rate.numpy())

model.fit(np.random.randn(50,10), np.random.randn(50), epochs=50, verbose=0)

# Change learning rate to 0.001 and train for 50 more epochs
K.set_value(model.optimizer.learning_rate, 0.001)
print("Learning rate before second fit:", model.optimizer.learning_rate.numpy())

model.fit(np.random.randn(50,10),
np.random.randn(50),
initial_epoch=50,
epochs=50,
verbose=0)

我刚刚使用 keras 2.3.1 对此进行了测试。不确定为什么该方法似乎不适合您。

关于python - Keras:改变学习率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59737875/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com