Ошибка времени выполнения PyTorch: ожидается, что аргумент будет иметь тип long, но вместо него получен CPUType - PullRequest
2 голосов
/ 03 июня 2019

Я новичок в PyTorch и прошёл этот урок по модели трансформатора. Я использую PyCharm на Win10. Сейчас я просто скопировал пример кода, но получаю следующую ошибку:

RuntimeError: Ожидаемый тензор для аргумента №1 «индексы» будет иметь скалярный тип Long; но вместо этого получил CPUType (при проверке аргументов для встраивания)

Похоже, с этой строки

def encode (self, src, src_mask):
вернуть self.encodder (self.src_embed (src), src_mask)

Tbh, я даже не уверен, что это значит, не говоря уже о том, как мне это исправить. Что такое CPUType? Когда я создал переменную такого типа? Глядя на код, я использую только тензоры (или числовые массивы)

вот полное сообщение об ошибке:

C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn_reduction.py: 46: UserWarning: size_average и сокращения аргументов будут устаревшими, используйте вместо этого сокращение = 'сумма'. warnings.warn (warning.format (RET)) C: /.../ PycharmProjects / Transformer / all_the_code.py: 263: Предупреждение пользователя: nn.init.xavier_uniform теперь не рекомендуется в пользу nn.init.xavier_uniform_. nn.init.xavier_uniform (р) Traceback (последний вызов последний):
Файл "C: /.../ PycharmProjects / Transformer / all_the_code.py", строка 421, в
SimpleLossCompute (model.generator, критерий, model_opt))
Файл "C: /.../ PycharmProjects / Transformer / all_the_code.py", строка 297, в run_epoch
batch.src_mask, batch.trg_mask)
Файл "C: /.../ PycharmProjects / Transformer / all_the_code.py", строка 30, вперед
вернуть self.decode (self.encode (src, src_mask), src_mask,
Файл "C: /.../ PycharmProjects / Transformer / all_the_code.py", строка 34, в кодировке
вернуть self.encoder (self.src_embed (src), src_mask)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 493, в __call __
результат = self.forward (* input, ** kwargs)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ modules \ container.py", строка 92, вперед
вход = модуль (вход)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 493, в __call __
результат = self.forward (* input, ** kwargs)
Файл "C: /.../ PycharmProjects / Transformer / all_the_code.py", строка 218, вперед
вернуть self.lut (x) * math.sqrt (self.d_model)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ modules \ module.py", строка 493, в __call __
результат = self.forward (* input, ** kwargs)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ modules \ sparse.py", строка 117, вперед
self.norm_type, self.scale_grad_by_freq, self.sparse)
Файл "C: ... \ Python \ Python37 \ lib \ site-packages \ torch \ nn \ functions.py", строка 1506, во вложении
возврат torch.embedding (вес, вход, padding_idx, scale_grad_by_freq, разреженный)

...