tensorflow2.0 实现梯度下降的实例代码
时间: 2023-09-28 08:07:25 浏览: 119
下面是一个使用 TensorFlow 2.0 实现梯度下降的示例代码:
```python
import tensorflow as tf
# 定义数据
x_data = [1, 2, 3, 4, 5]
y_data = [5, 7, 9, 11, 13]
# 定义模型参数
W = tf.Variable(0.0)
b = tf.Variable(0.0)
# 定义损失函数
def loss_func(x, y):
y_pred = W * x + b
return tf.reduce_mean(tf.square(y_pred - y))
# 定义优化器
optimizer = tf.optimizers.SGD(learning_rate=0.01)
# 定义训练函数
def train_step(x, y):
with tf.GradientTape() as tape:
loss = loss_func(x, y)
gradients = tape.gradient(loss, [W, b])
optimizer.apply_gradients(zip(gradients, [W, b]))
# 训练模型
epochs = 1000
for epoch in range(epochs):
for x, y in zip(x_data, y_data):
train_step(x, y)
# 输出训练结果
print("W:", W.numpy())
print("b:", b.numpy())
```
在这个示例代码中,我们使用 TensorFlow 2.0 实现了一个简单的线性回归模型,使用梯度下降来训练模型。我们首先定义了数据和模型参数,然后定义了损失函数和优化器。训练函数中使用 `GradientTape` 来计算梯度,然后使用优化器来更新模型参数。最后我们训练模型,输出训练结果。
阅读全文