크크루쿠쿠

Pytorch Basics 본문

DeepLearning/부스트캠프 AI Tech

Pytorch Basics

JH_KIM 2021. 8. 17. 10:48

Pytorch Operations

Numpy + AutoGrad(자동 미분)

-> pytorch 뿐만이 아니더라도 tf에서도 마찬가지임.

 

- Tensor

다차원 Arrays를 표현하는 Pytorch class

사실상 numpy의 ndarray와 동일 (tensorflow의 tensor와 동일.)

 

tensor 생성은 list나 ndarray를 사용 가능

 

data to tensor

data = [[3, 5],[10, 5]]
x_data = torch.tensor(data)
x_data

이 방법은 쓸일 없을것

ndArray to tensor

nd_array_ex = np.array(data)
tensor_array = torch.from_numpy(nd_array_ex)
tensor_array

 

대부분의 사용법이 numpy를 그대로 적용 가능

ex) ones_like,shape,dtype

-> 가장 큰 차이는 GPU에 올릴수 있는것.

if torch.cuda.is_available():
    x_data_cuda = x_data.to('cuda')
x_data_cuda.device

 

view, squeeze, unsqueeze 등으로 tensor 조정 가능

reshape 대신 view 쓰는걸 추천함.

그 차이는 contiguity 보장 차이.

view -> b 도 1로 가득 채워진다.

reshape -> b 는 0으로 채워져있음.

 

squeeze & unsqueeze

 

차원을 줄이(squeeze)고 늘리고(unsqueeze) 해준다

unsqueeze 안에 dim 변수 지정으로 axis 처럼 사용 가능.

 

기본적인 연산은 동일하다 +,-,/,*

하지만 dot product는 torch 에서는 dot이 아닌 mm을 사용

mm과 matmul 차이는 broadcasting 지원 차이임.

mm은 지원x matmul은 지원해줌.

matmul의 경우 5를 batch처럼 처리하고 5,2,1 행렬로 나온다.

 

 

- Tensor operations for ML/DL formula

nn.functional 모듈을 통해 다양한 연산 가능. -> 외우지 말고 찾아보자

 

- AutoGrad

Pytorch의 핵심임

backward 함수를 사용

'DeepLearning > 부스트캠프 AI Tech' 카테고리의 다른 글

Pytorch AutoGrad & Optimizer  (0) 2021.08.18
Pytorch Project Architecture  (0) 2021.08.17
Generative Models  (0) 2021.08.13
Transformer: Attention is all you need  (0) 2021.08.12
RNN(Recurrent Neural Network)  (0) 2021.08.12
Comments