본문 바로가기
파이썬

파이썬 PyTorch에서 행렬의 곱을 수행하는 방법

by º기록 2020. 10. 18.
반응형

numpy에서는 다음과 같은 간단한 행렬 곱셈을 수행 할 수 있습니다.

a = numpy.arange(2*3).reshape(3,2)
b = numpy.arange(2).reshape(2,1)
print(a)
print(b)
print(a.dot(b))

그러나 PyTorch Tensor로 이것을 시도하면 작동하지 않습니다.

a = torch.Tensor([[1, 2, 3], [1, 2, 3]]).view(-1, 2)
b = torch.Tensor([[2, 1]]).view(2, -1)
print(a)
print(a.size())

print(b)
print(b.size())

print(torch.dot(a, b))

이 코드는 다음 오류를 발생시킵니다.

RuntimeError : inconsistent tensor size at /Users/soumith/code/builder/wheel/pytorch-src/torch/lib/TH/generic/THTensorMath.c:503

PyTorch에서 행렬 곱셈을 수행하는 방법에 대한 아이디어가 있습니까?

 

해결 방법

 

당신은 찾고 있습니다

torch.mm(a,b)



# 1D inputs, same as torch.dot
a = torch.rand(n)
b = torch.rand(n)
torch.matmul(a, b) # torch.Size([])

# 2D inputs, same as torch.mm
a = torch.rand(m, k)
b = torch.rand(k, j)
torch.matmul(a, b) # torch.Size([m, j])

 

참조 페이지 https://stackoverflow.com/questions/44524901

 

 

반응형

댓글