ожидаемый объект внутреннего процессора, но получил внутренний CUDA для аргумента № 4 'mat1' - PullRequest
2 голосов
/ 14 мая 2019

Я пытаюсь переобучить слой FC resnet50 в моем наборе данных.После загрузки набора данных и модели предварительного обучения я перехожу на устройство, но получаю ошибку

: ожидаемый объект внутреннего процессора, но получен внутренний CUDA для аргумента # 4 'mat1'

Я много искал в Интернете и обнаружил, что в основном такого рода ошибки возникают из-за того, что модель не перемещена или вход в модель не перемещен в графический процессор.Я сделал оба, но все же, не повезло.Вот код и ошибка.

    if steps % print_every == 0:
        test_loss = 0
        accuracy = 0
        resnet50.eval()
        with torch.no_grad():
            for inputs, labels in testloader:
                inputs, labels = inputs.to(device),labels.to(device)
                logps = resnet50.forward(inputs)
                batch_loss = criterion(logps, labels)
                test_loss += batch_loss.item()

                ps = torch.exp(logps)
                top_p, top_class = ps.topk(1, dim=1)
                equals = top_class == labels.view(*top_class.shape)

               accuracy+=torch.mean(equals.type(torch.FloatTensor)).item()
        train_losses.append(running_loss/len(trainloader))
        test_losses.append(test_loss/len(testloader))                    
        print(f"Epoch {epoch+1}/{Epochs}.. "
              f"Train loss: {running_loss/print_every:.3f}.. "
              f"Test loss: {test_loss/len(testloader):.3f}.. "
              f"Test accuracy: {accuracy/len(testloader):.3f}")
        running_loss = 0
        resnet50.train()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...