딥 러닝을 하게 되면 다루게 되는 가장 기본적인 단위는 벡터, 행렬, 텐서
차원이 없는 값을 스칼라
1차원으로 구성된 값 -> 벡터
2차원으로 구성된 값 -> 행렬
3차원으로 구성된 값 -> 텐서
우리가 살고 있는 세계 = 3차원 -> 4차원 이상의 세계를 인간의 머리로 생각하는 것은 어려운 일
같은 표현 (벡터 = 1차원 텐서, 2차원 행렬 = 2차원 텐서, 그리고 3차원4차원5차원 텐서 ....)
텐서
* 2D Tensor(Typical Simple Setting)
|t| = (Batch size, dim)
위의 경우는 2차원 텐서의 크기 |t|를 (batch size × dimension)으로 표현하였을 경우입니다. 조금 쉽게 말하면, 아래의 그림과 같이 행렬에서 행의 크기가 batch size, 열의 크기가 dim이라는 의미
3D Tensor(Typical Computer Vision) - 비전 분야에서의 3차원 텐서
|t| = (batch size, width, height)
일반적으로 자연어 처리보다 비전 분야(이미지, 영상 처리)를 하시게 된다면 좀 더 복잡한 텐서를 다루게 됩니다. 이미지라는 것은 가로, 세로라는 것이 존재합니다. 그리고 여러 장의 이미지, 그러니까 batch size로 구성하게 되면 아래와 같이 3차원의 텐서가 됩니다.
위의 그림은 세로는 batch size, 가로는 너비(width), 그리고 안쪽으로는 높이(height)가 되는 것을 보여줍니다.
컴퓨터는 배치 단위로 가져가서 연산을 수행
-> 현재 각 배치의 텐서 크기 2*3*3 = 배치사이즈 = 단어 벡터 차원의 크기 = 문장 길이
넘파이로 텐서 만들기(벡터와 행렬 만들기)
PyTorch로 텐서를 만들어보기 전에 우선 Numpy로 텐서를 만들어보겠습니다. 우선 numpy를 임포트합니다.
import numpy as np
Numpy로 텐서를 만드는 방법은 간단한데 [숫자, 숫자, 숫자]와 같은 형식으로 만들고 이를 np.array()로 감싸주면 됩니다.
... https://wikidocs.net/52460
02. 텐서 조작하기(Tensor Manipulation) 1
이번 챕터에서 배울 내용에 대해서 리뷰해보겠습니다. 벡터, 행렬, 텐서의 개념에 대해서 이해하고, Numpy와 파이토치로 벡터, 행렬, 텐서를 다루는 방법에 대해서 이 ...
wikidocs.net
'AI' 카테고리의 다른 글
[DL, PyTorch] 신경망 모델 정의하기 -- Class, nn.Module (0) | 2021.12.07 |
---|---|
사이킷런 (0) | 2021.11.28 |
[리스트와 넘파이어레이] (0) | 2021.11.28 |
파이토치 패키지의 기본 구성 (0) | 2021.11.28 |
딥러닝 라이브러리 (0) | 2021.11.28 |