写一段PyTorch的演示代码
时间: 2023-01-15 19:23:45 浏览: 57
好的。这是一段 PyTorch 的演示代码,演示如何在 PyTorch 中定义和训练线性回归模型。
```
import torch
# 定义超参数
learning_rate = 0.01
num_epochs = 1000
# 生成训练数据
x_train = torch.rand(100, 1)
y_train = 2 * x_train + 1 + torch.randn(100, 1)
# 定义模型
class LinearRegression(torch.nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
self.linear = torch.nn.Linear(1, 1)
def forward(self, x):
y_pred = self.linear(x)
return y_pred
model = LinearRegression()
# 定义损失函数和优化器
criterion = torch.nn.MSELoss()
optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate)
# 开始训练
for epoch in range(num_epochs):
# 将输入数据转化为 PyTorch 张量
inputs = torch.from_numpy(x_train).float()
labels = torch.from_numpy(y_train).float()
# 前向传播
outputs = model(inputs)
loss = criterion(outputs, labels)
# 反向传播
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 50 == 0:
print(f'Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}')
```
在这段代码中,我们首先定义了超参数 `learning_rate` 和 `num_epochs`,然后生成了训练数据。接着,我们定义了一个线性回归模型,并使用均方误差 (MSE) 作为损失函数,随机梯度下降 (SGD) 作为优化器。然后我们在循环中训练模型。每 50 个 epoch 打印