Keras 3 API 文档 / 优化器

优化器

可用的优化器


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 文档 以获取可用调度列表。


核心优化器 API

这些方法和属性是所有 Keras 优化器共享的。

[source]

Optimizer class

keras.optimizers.Optimizer()

用于Tensorflow特定优化器逻辑的类.

该类的主要行为变化是针对tf.distribute.

它将覆盖来自Keras核心优化器的基类方法, 这些方法提供特定于分布的功能,例如变量 创建、损失减少等.


[source]

apply_gradients method

Optimizer.apply_gradients(grads_and_vars)

variables property

keras.optimizers.Optimizer.variables