Deep learning 需要在基于python-pytorch的代码中将GPU选项更改为CPU

Deep learning 需要在基于python-pytorch的代码中将GPU选项更改为CPU,deep-learning,gpu,pytorch,Deep Learning,Gpu,Pytorch,该代码基本上训练了通常的MNIST图像数据集,但它在GPU上进行训练。我需要更改此选项,以便代码使用我的笔记本电脑训练模型。我需要用第二行的.cuda()替换CPU中的等效值 我知道网上有很多关于如何使用MNIST数据库训练神经网络的例子,但这段代码的特殊之处在于它使用PID控制器(工业上常用)进行优化,我需要这段代码作为我研究的一部分 net = Net(input_size, hidden_size, num_classes) net.cuda()

该代码基本上训练了通常的MNIST图像数据集,但它在GPU上进行训练。我需要更改此选项,以便代码使用我的笔记本电脑训练模型。我需要用第二行的
.cuda()
替换CPU中的等效值

我知道网上有很多关于如何使用MNIST数据库训练神经网络的例子,但这段代码的特殊之处在于它使用PID控制器(工业上常用)进行优化,我需要这段代码作为我研究的一部分

net = Net(input_size, hidden_size, num_classes)
net.cuda()                                                                 
net.train()                                                                
#Loss and Optimizer
criterion = nn.CrossEntropyLoss()  
optimizer = PIDOptimizer(net.parameters(), lr=learning_rate, weight_decay=0.0001, momentum=0.9, I=I, D=D)
# Train the Model
for epoch in range(num_epochs):
    train_loss_log = AverageMeter()
    train_acc_log = AverageMeter()
    val_loss_log = AverageMeter()
    val_acc_log = AverageMeter()    
    for i, (images, labels) in enumerate(train_loader):  
        # Convert torch tensor to Variable
        images = Variable(images.view(-1, 28*28).cuda())
        labels = Variable(labels.cuda())
需要能够在不使用用于使用GPU进行培训的
.cuda()
选项的情况下运行代码。需要在我的电脑上运行它

这是必要的源代码


非常感谢,社区

最好升级到最新的pytorch(1.0.x)

有了最新的pytorch,管理“设备”更加容易

下面是一个简单的例子

device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
#Now send existing model to device.
model_ft = model_ft.to(device)
#Now send input to device and so on.
inputs = inputs.to(device)
使用此构造,您的代码将自动使用适当的设备


希望这有帮助

这绝对有帮助。非常感谢,我现在就开始。