본문 바로가기
Archive/ML & DL

[DS] Numpy and Pytorch 기본연산

by 다람이도토리 2021. 5. 3.

참고자료 

[1] 프로그래머스 DevCourse 인공지능과정
[2] wikidocs.net/52460

 

위키독스

온라인 책을 제작 공유하는 플랫폼 서비스

wikidocs.net

Tensor?

간단하게, 2차원에서 행렬이 3, 4차원이 되면 Tensor라고 생각하면 편하다. 즉 텐서 = 다차원 행렬이다. 1,2차원 배열이나 행렬도 텐서라고 부르는 경우도 많다.

예시)

2차원의 Tensor : (Batch Size) * (dimension)

3차원의 Tensor : (Batch Size) * (Width/length) * (Height/dim)

 

Numpy의 사용

github.com/SeongwonTak/-KDT-_AI_2_Notes/blob/main/Linalg/0503_Numpy_Note.ipynb

 

SeongwonTak/-KDT-_AI_2_Notes

Contribute to SeongwonTak/-KDT-_AI_2_Notes development by creating an account on GitHub.

github.com

구체적인 코드및 내용은 github 내용으로 대체한다.

중요한 포인트는, Numpy는 행렬 계산을 빠르게 해주고 선형대수에서 쓸 수 있는 여러 개념들을 편하게 사용가능하다.

(예시 - eigenvector, trace, determinant, rank 등을 쉽게 계산해준다)

 

Pytorch에서의 Tensor  사용

github.com/SeongwonTak/TIL_swtak/blob/master/DLBasic/IntroDLwithPytorch02.ipynb

 

SeongwonTak/TIL_swtak

Today, I learned. Contribute to SeongwonTak/TIL_swtak development by creating an account on GitHub.

github.com

Pytorch의 텐서는 기본적으로 Numpy와 유사한 기능을 한다.

하지만 Pytorch의 경우에는 추가적인 기능이 존재한다.

뷰(View)

뷰의 경우는 원소의 개수를 유지하면서, 텐서의 크기를 변경할 수 있다.

(예시, MNIST에서 28 * 28 행렬을 784 * 1 형태로 변경하는 경우가 존재한다)

3차원 텐서를 2차원으로 내리거나, 3차원 형태의 텐서를 다른 형태의 3차원 텐서로 조정한다.

이 경우, 특정 1개의 차원의 값을 모를 경우, -1로 대체하면, 전체 원소수를 유지하며 모양을 알맞게 변형한다.

스퀴즈(Squeeze), 언스퀴즈(Unsqueeze)

스퀴즈의 경우는 차원이 1인 경우, 해당 차원을 제외하게 된다.

예를 들어 3 * 1 형태의 2차원 텐서는 3의 크기를 가지는 배열이 된다.

반대로 Unsqueeze의 경우는 임의로 1의 크기의 차원을 추가하게 된다.

'Archive > ML & DL' 카테고리의 다른 글

[DL] Multi Layer Perceptron, Back Propagation 감잡기  (0) 2021.06.22
[DL] Pytorch Tutorial  (0) 2021.06.21
[DL] Single Layer Perceptron  (0) 2021.06.21
[ML/DL] 경사하강법  (0) 2021.06.09
[ML] 배치 학습 vs 온라인 학습  (0) 2021.06.03