compile()
和 fit()
的使用优化器是编译 Keras 模型时所需的两个参数之一:
import keras
from keras import layers
model = keras.Sequential()
model.add(layers.Dense(64, kernel_initializer='uniform', input_shape=(10,)))
model.add(layers.Activation('softmax'))
opt = keras.optimizers.Adam(learning_rate=0.01)
model.compile(loss='categorical_crossentropy', optimizer=opt)
您可以在传递给 model.compile()
之前实例化优化器,如上例所示,或者可以通过其字符串标识符传递它。在后一种情况下,将使用优化器的默认参数。
# 通过名称传递优化器:将使用默认参数
model.compile(loss='categorical_crossentropy', optimizer='adam')
您可以使用 学习率调度 来调节优化器的学习率如何随时间变化:
lr_schedule = keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=1e-2,
decay_steps=10000,
decay_rate=0.9)
optimizer = keras.optimizers.SGD(learning_rate=lr_schedule)
查看 学习率调度 API 文档 以获取可用调度列表。
这些方法和属性是所有 Keras 优化器共享的。
Optimizer
classkeras.optimizers.Optimizer()
用于Tensorflow特定优化器逻辑的类.
该类的主要行为变化是针对tf.distribute.
它将覆盖来自Keras核心优化器的基类方法, 这些方法提供特定于分布的功能,例如变量 创建、损失减少等.
apply_gradients
methodOptimizer.apply_gradients(grads_and_vars)
variables
propertykeras.optimizers.Optimizer.variables