덕배의 블로그
벡터, 행렬, 텐서를 이해하고 Numpy(넘파이)로 실습해보기 본문
반응형
딥러닝의 기본적인 단위
딥 러닝의 가장 기본적인 단위는 벡터, 행렬, 텐서이다. 차원이 없는 값을 스칼라
딥러닝을 할 때 다루고 있는 행렬 또는 텐서의 크기를 고려하는 것은 중요하기에 딥러닝을 한다면 알아가야 할 개념이다.
딥러닝에 대해서 잘 모른다면 밑에 링크를 참고하자
인공지능(AI) 딥러닝과 알고리즘( CNN, RNN, LSTM)에 대해 알아보자
Deep Learning이란? 딥러닝(Deep Learning)이란 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용하여 머신러닝 학습을 수행하는 것으로 심층학습이라고도 부른다. 따라서 딥러닝은 머신러닝
kdbeom.com
- 벡터 - 1차원으로 구성된 값 = 1차원 텐서
- 행렬 - 2차원으로 구성된 값 = 2차원 텐서
- 텐서 - 3차원으로 구성된 값 = 3차원 텐서
- 3차원을 넘어가면 4차원 텐서
2차원 텐서
만약 훈련 데이터 하나의 크기가 256이라면 훈련 데이터 하나 = 벡터의 차원은 256, 이 훈련 데이터의 개수가 3000개라면 전체 훈련 데이터의 크기는 3000 x 256이다 행렬이기에 2차원 텐서이다.
컴퓨터는 훈련 데이터를 하나씩 처리하지 않고 덩어리로 처리하기에 3000개에서 64개씩 처리하면 batch size는 64이다. 컴퓨터가 한 번에 처리하는 2차원 텐서의 크기는 64 x 256이다.
3차원 텐서
세로는 batch size, 가로는 width 그리고 안쪽 세로가 height이 있다.
Numpy
넘파이로 간단하게 실습해 보자
1차원 배열
t = np.array([0., 1., 2., 3., 4., 5., 6.])
print(t)
[0. 1. 2. 3. 4. 5. 6.]
print('Rank of t: ', t.ndim)
print('Shape of t: ', t.shape)
Rank of t: 1
Shape of t: (7,)
- ndim은 몇 차원인지 확인하는 파라미터
- 지금 벡터이므로 1이 출력되는 모습
- shape는 크기를 확인하는 파라미터
- (7,) = (1,7) = 1x7의 크기를 가지는 벡터
2차원 배열
a = torch.FloatTensor([[1., 2., 3.],
[4., 5., 6.],
[7., 8., 9.],
[10., 11., 12.]
])
print(a)
tensor([[ 1., 2., 3.],
[ 4., 5., 6.],
[ 7., 8., 9.],
[10., 11., 12.]])
print(a.dim()) # rank. 즉, 차원
print(a.size()) # shape
2
torch.Size([4, 3])
- dim을 사용하면 현재 차원을 보여준다
- size을 사용하면 크기를 확인 가능하다.
print(t[:, 1]) # 첫번째 차원을 전체 선택한 상황에서 두번째 차원의 첫번째 것만 가져온다.
print(t[:, 1].size()) # ↑ 위의 경우의 크기
tensor([ 2., 5., 8., 11.])
torch.Size([4])
여기까지 벡터, 행렬, 텐서를 알아보았다 다음 글도 이어서 더 심화 과정을 글을 적어보려 한다.
이 글이 독자에게 도움이 되었으면 좋겠다.

'인공지능' 카테고리의 다른 글
텐서 크기 변경, 차원 제거, 타입 캐스팅 파이토치(pytorch)로 실습하기 (0) | 2023.08.07 |
---|---|
벡터, 행렬, 텐서의 개념 pytorch(파이토치) 실습해보기 (2) | 2023.08.06 |
딥러닝 알고리즘 5가지를 쉽게 이해해볼까? (0) | 2023.07.30 |
인공지능(AI) 딥러닝 YOLO 역사 series(yolov6,yolov7,yolov8)에 대해 알아보자 (0) | 2023.07.28 |
인공지능(AI) 딥러닝 YOLO 역사 series(yolov4,yolov5)에 대해 알아보자 (0) | 2023.07.27 |