Я оставляю ответ, на случай, если кто-то еще застрянет на том же.
Сначала настройте Pytorch на использование графического процессора, если он доступен
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
print(device)
Затем в *Функция 1006 * init , приведенная к gpu путем вызова .cuda () для каждого элемента NN, например,
self.conv1 = nn.Conv2d(3, 24, 5).cuda()
self.pool = nn.MaxPool2d(2, 2).cuda()
Если вы не уверены в графическом процессоре,вызовите .to (устройство) для каждого элемента.
В функции forward (self, x) , перед выполнением шагов, я сделал
x = x.to(device)
Сразу после создания сетевого объекта, приведите его к устройству с помощью
net.to(device)
Все входы и метки должны быть наложены на устройство перед выполнением любой операции над ними.
inputs, labels = inputs.to(device), labels.to(device)
Я пропускаю написание всего кода, так как ссылка уже упоминалась в вопросе.Если кажется, что есть несколько лишних приведений к gpu, они ничего не ломают.Я мог бы также собрать ipynb с изменениями.