pytorch 의 matmul 과 mm,bmm 차이 설명
먼저 홈 페이지 에서 이 세 함수 에 대한 소 개 를 보 세 요.
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
。
이상 은 개인 적 인 경험 이 므 로 여러분 에 게 참고 가 되 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.만약 잘못 이 있 거나 완전히 고려 하지 않 은 부분 이 있다 면 아낌없이 가르침 을 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정확도에서 스케일링의 영향데이터셋 스케일링은 데이터 전처리의 주요 단계 중 하나이며, 데이터 변수의 범위를 줄이기 위해 수행됩니다. 이미지와 관련하여 가능한 최소-최대 값 범위는 항상 0-255이며, 이는 255가 최대값임을 의미합니다. 따...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.