RuntimeError: addmm (): аргумент 'mat1' (позиция 1) должен быть переменной, а не torch.FloatTensor - PullRequest
0 голосов
/ 22 мая 2018

Я использую этот чрезвычайно простой пример PyTorch NN из документации как есть, и ничего не изменилось.

Я получаю эту ошибку:

Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/opt/conda/envs/fastai/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/envs/fastai/lib/python3.6/site-packages/torch/nn/modules/container.py", line 67, in forward
    input = module(input)
  File "/opt/conda/envs/fastai/lib/python3.6/site-packages/torch/nn/modules/module.py", line 357, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/envs/fastai/lib/python3.6/site-packages/torch/nn/modules/linear.py", line 55, in forward
    return F.linear(input, self.weight, self.bias)
  File "/opt/conda/envs/fastai/lib/python3.6/site-packages/torch/nn/functional.py", line 835, in linear
    return torch.addmm(bias, input, weight.t())
RuntimeError: addmm(): argument 'mat1' (position 1) must be Variable, not torch.FloatTensor

По-видимому, во время умножения матрицы возникает ошибка типа данных.
Почему матрицы, которые я пытаюсь умножить, должны быть переменнымив любом случае?

Я могу сделать
x = Variable(torch.randn(N, D_in)) y = Variable(torch.randn(N, D_out))
, но получить
AttributeError: 'Variable' object has no attribute 'item'
, чтобы это не помогло.

Я использую PyTorch версии 0.3.1.post2.

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

У меня была такая же проблема, поэтому я просто добавлю команды обновления на тот случай, если вы не захотите их искать:
Необязательно:

conda list | grep pytorch 
conda upgrade conda 

Следующее обновление ничего не обновило, хотя они должны, и я думаю, что это правильный способ обновления (вы можете попробовать это сначала)

conda update pytorch torchvision

Что помогло, так это явно указать версию:

conda install pytorch=0.4.0 -c pytorch
0 голосов
/ 22 мая 2018

Я думаю, что только что нашел ответ на свой вопрос, поэтому я оставлю это здесь, если кто-нибудь еще столкнется с этим:

**NOTE:** These examples have been update for PyTorch 0.4, which made several major changes to the core PyTorch API. Most notably, prior to 0.4 Tensors had to be wrapped in Variable objects to use autograd; this functionality has now been added directly to Tensors, and Variables are now deprecated.

Так что это означает, что яработающая и старая версия PyTorch

...