`tf.keras.optimizers.SGD` 是 TensorFlow 2.x 版本中的一个梯度下降优化器,用于最小化训练过程中的损失函数。`SGD` 是随机梯度下降(Stochastic Gradient Descent)的缩写,是一种常用的优化算法之一。
`tf.keras.optimizers.SGD` 的常用参数如下:
- `learning_rate`:学习率,控制每次参数更新的步长。
- `momentum`:动量,控制参数更新的方向和大小,防止陷入局部最优解。
- `nesterov`:Nesterov 动量,控制参数更新的方向和大小,可以提高模型训练的速度和精度。
- `name`:优化器的名称。
例如,下面的代码展示了如何使用 `tf.keras.optimizers.SGD`:
```python
import tensorflow as tf
# 定义模型和损失函数
model=tf.keras.models.Sequential([...])
loss_fn=tf.keras.losses.MeanSquaredError()
# 创建优化器
optimizer=tf.keras.optimizers.SGD(learning_rate=0.01, momentum=0.9)
# 训练模型
for epoch in range(num_epochs):
for x_batch, y_batch in train_dataset:
with tf.GradientTape() as tape:
y_pred=model(x_batch)
loss=loss_fn(y_batch, y_pred)
grads=tape.gradient(loss, model.trainable_variables)
optimizer.apply_gradients(zip(grads, model.trainable_variables))
```
在上面的示例中,我们使用了 `tf.keras.optimizers.SGD` 和动量来训练模型。优化器会根据损失函数计算出的梯度来更新模型的可训练变量。通过不断迭代,模型的参数会不断调整,从而最小化损失函数。