在PyTorch中将深度神经网络代码从CPU改为GPU运算,主要需要修改以下几个方面:
-
模型定义
在构建模型时,将模型放到GPU上:
python
device = torch.device(“cuda”)
model = Model().to(device) -
输入数据
将输入数据移动到GPU上:
python
inputs = data.to(device) -
模型参数
可以调用.cuda()
将模型的参数移动到GPU上:
python
model.cuda() -
计算损失函数和优化器
损失函数计算需要将GPU tensor作为输入,优化器需要在GPU参数上进行优化。
python
criterion = nn.MSELoss().to(device)
optimizer = optim.SGD(model.parameters(), lr=0.01) -
数据加载
可以使用.cuda()
将DataLoader输出移动到GPU上。 -
模型训练
模型在GPU上进行前向传播和反向传播计算。 -
保存和加载
保存或加载模型时需要使用.cpu()
将参数移动到CPU内存上。
主要就是确保模型、数据、计算都在GPU上进行,同时保存加载时注意在CPU和GPU之间转换。