Adam 是一种优化器算法,用于训练机器学习模型。tf.keras.optimizers.Adam(learning_rate=lr_schedule) 则是 TensorFlow 中的一个实现。
区别在于,使用 Adam 优化器时,需要先定义优化器对象,然后使用该对象对模型进行训练。而使用 tf.keras.optimizers.Adam(learning_rate=lr_schedule) 时,可以在模型编译时直接指定优化器,这样可以方便地配置不同的优化器参数,如学习率等。
以下是使用 Adam 优化器训练模型的示例代码:
import tensorflow as tf
# 定义优化器对象
optimizer = tf.keras.optimizers.Adam()
# 定义模型架构
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
tf.keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer=optimizer,
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y_train, epochs=10)
以下是使用 tf.keras.optimizers.Adam(learning_rate=lr_schedule) 训练模型的示例代码:
import tensorflow as tf
# 定义学习率调度器,用于动态调整学习率
lr_schedule = tf.keras.optimizers.schedules.ExponentialDecay(
initial_learning_rate=1e-3,
decay_steps=10000,
decay_rate=0.9)
# 定义模型架构
model = tf.keras.Sequential([
tf.keras.layers.Dense(64, activation='relu', input_shape=(784,)),
tf.keras.layers.Dense(10, activation='softmax')
])
# 编译模型
model.compile(optimizer=tf.keras.optimizers.Adam(learning_rate=lr_schedule),
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
# 训练模型
model.fit(x_train, y