Я новичок в 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, разреженный)