在使用PyTorch在GPU上并行运行线性回归时,可以按照以下步骤进行操作:
import torch
import torch.nn as nn
import torch.optim as optim
from torch.utils.data import DataLoader, TensorDataset
# 假设有输入特征 x 和对应的目标值 y
x = torch.tensor([[1.0], [2.0], [3.0], [4.0]])
y = torch.tensor([[2.0], [4.0], [6.0], [8.0]])
# 创建数据集和数据加载器
dataset = TensorDataset(x, y)
dataloader = DataLoader(dataset, batch_size=2, shuffle=True)
class LinearRegression(nn.Module):
def __init__(self):
super(LinearRegression, self).__init__()
self.linear = nn.Linear(1, 1) # 输入特征维度为1,输出维度为1
def forward(self, x):
return self.linear(x)
model = LinearRegression()
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model.to(device)
criterion = nn.MSELoss()
optimizer = optim.SGD(model.parameters(), lr=0.01)
num_epochs = 100
for epoch in range(num_epochs):
for inputs, targets in dataloader:
inputs, targets = inputs.to(device), targets.to(device)
outputs = model(inputs)
loss = criterion(outputs, targets)
optimizer.zero_grad()
loss.backward()
optimizer.step()
if (epoch+1) % 10 == 0:
print(f"Epoch [{epoch+1}/{num_epochs}], Loss: {loss.item():.4f}")
# 假设有新的输入特征 x_test
x_test = torch.tensor([[5.0], [6.0]])
x_test = x_test.to(device)
predicted = model(x_test)
print(predicted)
这样就可以在GPU上并行运行线性回归模型了。在这个过程中,我们使用了PyTorch提供的GPU加速功能,通过将模型和数据移动到GPU设备上,利用GPU的并行计算能力加速模型训练和预测过程。
推荐的腾讯云相关产品:腾讯云GPU云服务器,详情请参考腾讯云GPU云服务器。
领取专属 10元无门槛券
手把手带您无忧上云