NAVER AI Tech(87)
-
5. pytorch dataset
DataLoader 클래스를 사용하여 pytorch model의 input으로 제공하게 된다. - tensor로 변환 + batch dataset 생성이 주된 업무. - generator 형식이므로 for 문을 통해서 하나씩 받아오면 된다. next(), iter() 함수와 함께 사용! - 여러가지 parameter가 있는데 document를 한번 찾아보자.
2023.11.16 -
4. AutoGrad & Optimizer
딥러닝 모델 구축 시 정의해야하는 4가지 1. input 2. forward 3. output 4. backward ~~~ criterion = torch.nn.MSELoss() optimizer = torch.optim.SGD(model.parameters(), lr=learning_rate) optimzer.zero_grad() # 이전 가중치 초기화 output = model(input) loss = criterion(outputs, labels) loss.backward() # backpropagation 진행. 모든 gradient 구하기 optimizer.step() # optimizer를 사용하여 gradient기반으로 weight update. ~~~
2023.11.16 -
3. Pytorch 프로젝트 구조
colab 등 docker에 ssh로 접근할 수 있는 방법 설명. 1. config.json : arguments(=parameters) 정보 저장 - 이후 프로젝트에서 수정사항이 있을 때 하드코딩 말고 간단하게 config.json 파일만 수정하여 다른 결과값을 도출해볼 수 있다. - 흡사 모듈화를 시키는 것과 비슷함. 2. data_loader 폴더 3. model 폴더 4. trainer 폴더 5. utils 폴더 등으로 어느정도 프로젝트의 구조를 정형화(=템플릿) 방식을 통일하는 것이 팀 프로젝트를 진행하기 용이하다.
2023.11.13 -
2. Pytorch 기본 코드!
numpy + AutoGrad를 제공. 기본 벡터 다루는 내장 함수들 1. tensor.reshape() 2. tensor.squeeze() 3. tensor.unsqueeze() 4. tensor1.matmul(tensor2), tensor1.mm(tensor2) : element-wise 곱 but matmul은 broadcasting을 지원해주므로 조심할 것 5. tensor1.dot(tensor2) : 행렬 내적 곱 import torch.nn.functional as F # 이거 진짜 많이쓴다~ 유용한 기능 많음 - F.softmax(tensor, dim=0) - F.one_hot(tensor) z.backward() : 미분 수행 w.grad() : 기울기 값을 반환.
2023.11.13 -
1. Pytorch란?
딥러닝 프레임워크. Pytorch : facebook 개발 Tensorflow : Google 개발 Keras : wrapper. 즉 pytorch이든 tensorflow이든 상관없이 같이 쓸 수 있긴함. 살짝 고런 느낌쓰 Tensorflow : Define and Run(=static) - forward propagation을 먼저 구현하고, 실행 시점에 데이터 feed Pytorch : Define by Run(=dynamic) - forwrad propagation을 정의와 동시에 실행 - 즉 디버깅(print문)이 훨씬 편리함. numpy = ndarray 와 흡사하게 pytorch = tensor를 사용. - 텐서는 그냥 3차원이상 다차원 리스트라고 생각하면 편하다. - 다만 torch.tens..
2023.11.13 -
16. Gradient Descent
핵심은 미분. 미분 = 기울기!! - 기울기를 통해 loss가 최적해에 수렴하는 방향을 알 수 있다. - 구현 시 Gradient Descent 결과가 최적해(=극점)에 도달했을 때 기울기가 0 이므로 해당 지점에 도착했을 대 종료 조건이 필요하다.(정확히 0일 확률은 드물기 때문에 어느정도 오차범위를 설정해주어야 한다.) 현재 지점(var)에서 기울기가 양수 - 오른쪽으로 가면 상승, 왼쪽으로 가면 하강. 따라서 좌표상 왼쪽으로 이동해야하므로 var - (learning rate * grad) 현재 지점(var)에서 기울기가 음수 - 오른쪽으로 가면 하강, 왼쪽으로 가면 상승. 따라서 좌표상 오른쪽으로 이동해야 하므로 var - (learning rate * grad) - 이때 grad는 기울기. 기울..
2023.11.09