Учебное пособие по cifar 10 для pytorch можно найти здесь: https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#sphx-glr-beginner-blitz-cifar10-tutorial-py
В учебном пособии рассказывается, как использовать pytorch для создания простой сверточной нейронной сети для набора данных CIFAR 10.В конце рассказывается, как реализовать приведенный выше код для графического процессора.
По сути, разница в том, что мы создаем device = torch.device ('gpu') и отправляем все тензоры на устройство gpu.прежде чем вычислять с ними.По сути, мы хотим, чтобы сетевой объект и тензоры входных данных и меток отправлялись на устройство gpu перед выполнением вычислений каждый раз.
Итак, я вернулся и добавил:
net.to(device)
И в цикле вычислений:
with torch.no_grad():
for data in testloader:
images, labels = data
#I added this line of change:
inputs, labels = inputs.to(device), labels.to(device)
outputs = net(images)
_, predicted = torch.max(outputs, 1)
c = (predicted == labels).squeeze()
for i in range(4):
label = labels[i]
class_correct[label] += c[i].item()
class_total[label] += 1
Однако это вызвало ошибку: OSError: [Errno 12] Cannot allocate memory
Что я неправильно понимаю?Нужно ли вносить какие-либо другие изменения, чтобы весь учебник мог работать на GPU?