텐서 조작 - 2

Sukhun-Net·2024년 6월 20일

자주 사용되는 기능들

1) 행렬 곱셈과 곱셈의 차이(Matrix Multiplication Vs. Multiplication)

행렬로 곱셈을 하는 방법은 크게 두 가지가 있다.

바로 행렬 곱셈(.matmul)과 원소 별 곱셈 (element-wise 곱셈) (.mul)입니다.

행렬 곱셈

m1 = torch.FloatTensor([[1, 2], [3, 4]])
m2 = torch.FloatTensor([[1], [2]])


print(m1.matmul(m2)) # 2 x 1

결과 
tensor([[ 5.],
        [11.]])

원소 별 곱셈 (element-wise 곱셈)

서로 다른 크기의 행렬이 브로드캐스팅이 된 후에 element-wise 곱셈이 수행
이는 * 또는 mul()을 통해 수행


m1 = torch.FloatTensor([[1, 2], [3, 4]])
m2 = torch.FloatTensor([[1], [2]])

print(m1 * m2) # 2 x 2
print(m1.mul(m2))

결과 	

tensor([[1., 2.],
        [6., 8.]])
tensor([[1., 2.],
        [6., 8.]])        

평균

t.mean(dim=0)

  • dim=0이라는 것은 첫번째 차원을 의미(행)
  • 인자로 dim을 준다면 해당 차원 개념을 제거한다는 의미

=> 다시 말해 행렬에서 '열' 개념만을 남기겠다는 의미

[[1., 2.],
[3., 4.]]

  • 1과 3의 평균을 구하고, 2와 4의 평균을 구한다.
  • 결과 ==> [2., 3.]
profile
Data Scientist (Computer Vision, Multimodal)

0개의 댓글