pytorch 의 matmul 과 mm,bmm 차이 설명

2482 단어 pytorchmatmulmmbmm
pytorch 에서 matmul 과 mm 와 bmm 의 차이 matmulmbmm 결론
먼저 홈 페이지 에서 이 세 함수 에 대한 소 개 를 보 세 요.
matmul
在这里插入图片描述
mm
在这里插入图片描述
bmm
말 그대로 두 batch 매트릭스 곱셈 입 니 다.
在这里插入图片描述
결론.
공식 문서 에서 볼 수 있다.
1.mm 는 행렬 곱셈 만 할 수 있 습 니 다.즉,입력 한 두 tensor 차원 은(n)만 할 수 있 습 니 다.× m ) (n\times m)(n×m 와(m)× p ) (m\times p)(m×p)
2.bmm 는 두 개의 3 차원 장 량 을 곱 하고 두 개의 입력 tensor 차원 은(b)이다.× n × m ) (b\times n\times m)(b×n×m)와(b)× m × p ) (b\times m\times p)(b×m×p),1 차원 b 는 batch size 를 대표 하고 출력 은(b)× n × p ) (b\times n \times p)(b×n×p)
3.matmul 은 장 량 곱셈 을 할 수 있 고 입력 은 고 차원 일 수 있 습 니 다.
보충:torch 의 몇 가지 곱셈.torch.mm, torch.mul, torch.matmul
시 승
점 승 은 모두 broadcast 로 torch.mul(a,b)로 이 루어 질 수도 있 고 직접*로 이 루어 질 수도 있 습 니 다.

>>> a = torch.ones(3,4)
>>> a
tensor([[1., 1., 1., 1.],
        [1., 1., 1., 1.],
        [1., 1., 1., 1.]])
>>> b = torch.Tensor([1,2,3]).reshape((3,1))
>>> b
tensor([[1.],
        [2.],
        [3.]])
>>> torch.mul(a, b)
tensor([[1., 1., 1., 1.],
        [2., 2., 2., 2.],
        [3., 3., 3., 3.]])
a,b 차원 이 일치 하지 않 을 때 같은 차원 으로 자동 으로 채 워 집 니 다.
행렬 곱 하기
행렬 의 상승 은 torch.mm 와 torch.matmul 두 함수 가 있다.그 중 하 나 는 2 차원 행렬 을 겨냥 한 것 이 고,그 다음 하 나 는 고 차원 이다.torch.mm 가 2 차원 보다 클 때 오 류 를 보고 합 니 다.

>>> a = torch.ones(3,4)
>>> b = torch.ones(4,2)
>>> torch.mm(a, b)
tensor([[4., 4.],
        [4., 4.],
        [4., 4.]])

>>> a = torch.ones(3,4)
>>> b = torch.ones(5,4,2)
>>> torch.matmul(a, b).shape
torch.Size([5, 3, 2])

>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(a, b).shape
torch.Size([5, 4, 3])

>>> a = torch.ones(5,4,2)
>>> b = torch.ones(5,2,3)
>>> torch.matmul(b, a).shape
  。
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기