Необходимо изменить опцию GPU на CPU в коде, основанном на Python Pytorch - PullRequest
0 голосов
/ 06 февраля 2019

Код в основном обучает обычный набор данных изображений MNIST, но он тренируется на GPU.Мне нужно изменить эту опцию, чтобы код обучал модель на моем ноутбуке.Мне нужно заменить .cuda() во второй строке на эквивалент в CPU.

Я знаю, что в Интернете есть много примеров того, как обучать нейронные сети с использованием базы данных MNIST, но что особенного в этом коде, это то, что он выполняет оптимизацию с использованием ПИД-регулятора (обычно используется в промышленности), и мне нужнокод как часть моего исследования.

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())

Может понадобиться выполнить код без использования опции .cuda(), предназначенной для обучения с использованием графического процессора.Необходимо запустить его на моем ПК.

Вот исходный код на случай необходимости.

https://github.com/tensorboy/PIDOptimizer

Большое спасибо, сообщество!

1 Ответ

0 голосов
/ 06 февраля 2019

Лучше перейти на последний 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)

С помощью этой конструкции ваш код автоматически использует соответствующее устройство.

Надеюсь, это поможет!

...