250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 회귀
- 주식
- API
- 가격맞히기
- PyTorch
- 크롤링
- 흐름도
- 주식매매
- 재귀함수
- Regression
- 파이썬
- CLI
- 게임
- 프로그래머스
- python
- Linear
- 딥러닝
- 템플릿
- 주식연습
- 알고리즘
- tensorflow
- 선형회귀
- 머신러닝
- 코딩
- 주가예측
- 코딩테스트
- 추천시스템
- 연습
- 기초
- DeepLearning
Archives
- Today
- Total
코딩걸음마
[딥러닝] Pytorch 행렬/텐서의 곱셈(Matrix/tensor Multiplication) 본문
728x90
1. 행렬의 곱셈
행렬의 곱셈은 내적(inner product, Dot product)이라고한다. 딥러닝 과정에서 중요한 연산 중 하나이다.
행렬의 곱셈의 조건이 있다. 다음과 같은 두개의 행렬이 있다고 가정해보자
x = torch.size([ a , b ])
y = torch.size([ c , d ]) 라고 할 때
b = c 조건이 성립되어야하며, 내적 결과는 torch.size([ a , d ])가 나온다.
import torch
x = torch.FloatTensor([[1, 2],
[3, 4],
[5, 6]])
y = torch.FloatTensor([[1, 2],
[1, 2]])
print(x.size(), y.size())
torch.Size([3, 2]) torch.Size([2, 2])
두 행렬의 크기를 파악한 결과, b와 c가 같으므로 내적연산이 가능하며, (3, 2)의 행렬이 결과로 나올 것이다.
행렬의 내적연산은 다음과 같다.
torch.matmul(x, y)
z = torch.matmul(x, y)
z
tensor([[ 3., 6.],
[ 7., 14.],
[11., 22.]])
2. 텐서의 곱셈
물론 tensor간의 곱셈도 있다. 이 또한 딥러닝 과정에서 중요한 연산 중 하나이다.
텐서의 곱셈에서도 조건이 있다. 다음과 같은 두개의 tensor가 있다고 가정해보자
x = torch.size([ N , n, h ])
y = torch.size([ N, h , m ]) 라고 할 때
N= N 조건과 h = h 조건이 동시에 성립되어야하며, 결과 tensor는 torch.size([ N , n, m ])가 나온다.
x = torch.FloatTensor([[[1, 2],
[3, 4],
[5, 6]],
[[7, 8],
[9, 10],
[11, 12]],
[[13, 14],
[15, 16],
[17, 18]]])
y = torch.FloatTensor([[[1, 2, 2],
[1, 2, 2]],
[[1, 3, 3],
[1, 3, 3]],
[[1, 4, 4],
[1, 4, 4]]])
print(x.size(), y.size())
torch.Size([3, 3, 2]) torch.Size([3, 2, 3])
두 행렬의 크기를 파악한 결과, N이 3으로 같고 h가 2로 같으므로 곱셈연산이 가능하며, (3, 3, 3)의 텐서이 결과로 나올 것이다.
텐서의 곱셈연산은 다음과 같다.
torch.bmm(x, y)
z = torch.bmm(x, y)
print(z.size())
z
tensor([[[ 3., 6., 6.],
[ 7., 14., 14.],
[ 11., 22., 22.]],
[[ 15., 45., 45.],
[ 19., 57., 57.],
[ 23., 69., 69.]],
[[ 27., 108., 108.],
[ 31., 124., 124.],
[ 35., 140., 140.]]])
728x90
'딥러닝_Pytorch' 카테고리의 다른 글
[딥러닝-예제] 선형회귀 (Linear Regression) (보스턴 주택가격예측) (0) | 2022.06.27 |
---|---|
[딥러닝] Pytorch 선형결합층(Linear_layer) (0) | 2022.06.26 |
[딥러닝] Pytorch 주요함수 expand/randperm/argmax/topk/masked_fill/Ones , Zeros (0) | 2022.06.24 |
[딥러닝] Pytorch 슬라이싱/합치기(concat),stack/split,chunk/ index_select (0) | 2022.06.23 |
[딥러닝] Pytorch 차원다루기(Shaping/squeeze) (0) | 2022.06.23 |
Comments