Pytorch runtimeError "матрицы ожидаются, получаются 1D, 2D тензоры в" - PullRequest
1 голос
/ 07 февраля 2020

Я начинаю практиковать Pytorch , попробую использовать метод torch.mm ()。

Ниже мой код

import torch 
import numpy as np
from torch.autograd import Variable
num_x = np.array([[1.0, 2.0]
                  ,[3.0,4.0]])

tensor_x = torch.from_numpy(num_x)
x = Variable(tensor_x,requires_grad = True)
s = Variable(torch.DoubleTensor([0.01,0.02]),requires_grad = True)
print(s)
s = s.mm(x)
print(s)

К сожалению, во время выполнения возникает ошибка

*RuntimeError                              Traceback (most recent call last)
<ipython-input-58-e8a58ffb2545> in <module>()
      9 s = Variable(torch.DoubleTensor([0.01,0.02]),requires_grad = True)
     10 print(s)
---> 11 s = s.mm(x)
     12 print(s)
RuntimeError: matrices expected, got 1D, 2D tensors at /pytorch/aten/src/TH/generic/THTensorMath.cpp:131*

Как я могу решить эту проблему? Ваш ответ приветствуется

1 Ответ

1 голос
/ 07 февраля 2020

попытка reshape вам нужно изменить форму от s до (1,2), чтобы сделать возможным умножение матрицы операция с (2,2) тензор

>>> s.reshape(1,2).mm(x)
tensor([[0.0700, 0.1000]], dtype=torch.float64, grad_fn=<MmBackward>)

Или дать правильную форму при инициализации s

>>> s = Variable(torch.DoubleTensor([[0.01,0.02]]),requires_grad = True)
>>> s.mm(x)
tensor([[0.0700, 0.1000]], dtype=torch.float64, grad_fn=<MmBackward>)
...