Как добавить вычисление на GPU для учебника по CIFAR 10 pytorch? - PullRequest
0 голосов
/ 11 декабря 2018

Учебное пособие по 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?

1 Ответ

0 голосов
/ 22 декабря 2018

Это может произойти, если недостаточно места подкачки.Попробуйте с небольшим количеством num_workers.

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

...