在PyTorch中,可以通过使用torch.nn.DataParallel
来实现模型的并行。
首先,定义模型并将其放入DataParallel
中,示例如下:
import torch import torch.nn as nn class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() self.fc1 = nn.Linear(1000, 500) self.fc2 = nn.Linear(500, 10) def forward(self, x): x = self.fc1(x) x = self.fc2(x) return x model = MyModel() model = nn.DataParallel(model)
然后,将数据和模型传入GPU并进行训练,示例如下:
device = torch.device("cuda" if torch.cuda.is_available() else "cpu") model.to(device) # 定义损失函数和优化器 criterion = nn.CrossEntropyLoss() optimizer = torch.optim.SGD(model.parameters(), lr=0.001) # 加载数据 data_loader = DataLoader(dataset, batch_size=64, shuffle=True) # 训练模型 for inputs, labels in data_loader: inputs, labels = inputs.to(device), labels.to(device) optimizer.zero_grad() outputs = model(inputs) loss = criterion(outputs, labels) loss.backward() optimizer.step()
通过上述方法,可以实现模型的并行训练,提高训练速度和效率。