pytorch反向传播代码
时间: 2024-03-23 19:35:04 浏览: 101
python实现线性回归的反向传播(以torch)
PyTorch是一个流行的深度学习框架,它提供了灵活且高效的反向传播功能。下面是一个简单的PyTorch反向传播代码示例:
```python
import torch
# 创建输入张量
x = torch.tensor([1.0, 2.0, 3.0], requires_grad=True)
# 创建模型参数
w = torch.tensor([4.0, 5.0, 6.0], requires_grad=True)
b = torch.tensor(7.0, requires_grad=True)
# 定义模型
def model(x):
return torch.dot(x, w) + b
# 计算预测值
y_pred = model(x)
# 创建目标张量
y_true = torch.tensor(10.0)
# 计算损失函数
loss = (y_pred - y_true)**2
# 执行反向传播
loss.backward()
# 打印梯度
print('dL/dw:', w.grad)
print('dL/db:', b.grad)
```
在这个示例中,我们首先创建了输入张量x和模型参数w、b,并将它们设置为需要梯度计算。然后定义了一个简单的线性模型model,它将输入张量x与权重w进行点积,并加上偏置b。接下来,我们计算了预测值y_pred和目标值y_true之间的均方误差损失函数loss。最后,通过调用`loss.backward()`执行反向传播,PyTorch会自动计算出损失函数对于每个需要梯度的参数的梯度。我们可以通过访问参数的`.grad`属性来获取这些梯度值。
阅读全文