[딥러닝 기초] Pytorch 기본연산

[딥러닝 기초] Pytorch 기본연산

다음의 책을 공부하며 정리한 내용입니다

Pytorch 기본 연산

: pytorch를 활용한 신경망 구성을 위해 필수적인 딥러닝 기본 연산단위를 알아보자.

벡터

  • 행벡터 : 세로벡터 -> tor.FloatTensor([0,1,2,3])
  • 열벡터 : 가로벡터 -> tor.FloatTensor([0],[1],[2],[3]])

Tensor

  • 딥러닝의 가장 기본적인 연산단위 : 벡터, 행렬, 텐서
    • 0차원 : 스칼라
    • 1차원 : 벡터
    • 2차원 : 행렬
    • 3차원 이상 : 텐서

2D Tensor : 행렬

2차원 텐서는 말그대로 ‘행렬‘이다. 따라서 2차원 텐서 t는 다음과 같이 나타낼 수 있다.

|t| = (배치 사이즈, 차원)

  • 행렬의 행의 개수 = 배치사이즈

  • 행렬의 열의 개수 = 차원(dimension)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
t = tor.FloatTensor([0,1,2,3])
print(t)
print(t.dim(), t.size()) # rank(차원), 원소개수

# 인덱스로 접근 가능하다
print(t[1])

# 정수 텐서
lt = tor.LongTensor([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12]
])
print(lt)
print(lt[2], lt[2].size())
1
2
3
4
5
6
7
8
tensor([0., 1., 2., 3.])
1 torch.Size([4])
tensor(1.)
tensor([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])
tensor([7, 8, 9]) torch.Size([3])

3D Tensor

이미지/영상처리 분야에서는 보다 복잡한 텐서를 다룬다.

이미지는 가로/세로가 존재하며, 따라서 여러장의 이미지는 자연스레 (가로, 세로, 배치 크기) 가 됨을 연상할 수 있다.

3D Tensor in NLP

Natural Language Processing(자연어처리)에서는 보통 (문장길이, 차원, 배치 크기) 라는 3차원 텐서를 사용한다.

댓글