Как исправить pytorch 'RuntimeError: Ожидаемый объект типа torch.cuda.LongTensor, но обнаружен тип torch.LongTensor' - PullRequest
0 голосов
/ 04 ноября 2019

Я пытаюсь получить этот код, работающий с использованием графического процессора FloydHub. Когда я запускаю скрипт train.py в папке train_model , я получаю упомянутое RuntimeError.

Вот полный ответ:

Traceback (последний вызов был последним):Файл "./train_model/train.py", строка 79, вответ = модель (партия)Файл "/usr/local/lib/python3.6/site-packages/torch/nn/modules/module.py", строка 477, в вызов результат = self.forward (* input, ** kwargs)Файл "/floyd/home/train_model/model.py", строка 29, впередvecs = self.embed (batch.text)Файл "/usr/local/lib/python3.6/site-packages/torch/nn/modules/module.py", строка 477, в вызов результат = self.forward (* input, ** kwargs)Файл "/usr/local/lib/python3.6/site-packages/torch/nn/modules/sparse.py", строка 110, впередself.norm_type, self.scale_grad_by_freq, self.sparse)Файл "/usr/local/lib/python3.6/site-packages/torch/nn/functional.py", строка 1110, во вложениивозврат torch.embedding (вес, ввод, padding_idx, scale_grad_by_freq, разреженный)RuntimeError: Ожидаемый объект типа torch.cuda.LongTensor, но найден тип torch.LongTensor для аргумента № 3 «индекс»

Я понимаю, что части кода используют GPU, а другие не знают, как их идентифицировать и заставить весь код работать на GPU.

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 04 ноября 2019

Ошибка возникает при вызове функции пересылки. Как говорит ошибка, функция пересылки «Ожидаемый объект типа torch.cuda.LongTensor», я считаю, что ваш ввод batch все еще находится в CPU и должен быть передан на устройство cuda. ​​

Я чувствую, что вы уже знаете, как это сделать, но если вы этого не сделаете, пожалуйста, прочитайте https://pytorch.org/tutorials/beginner/blitz/cifar10_tutorial.html#training-on-gpu.

Надеюсь, это поможет, дайте мне знать, если вам нужна дополнительная помощь. :)

...