Would you log?
로그인
Would you log?
로그인
[3주차] 8.18 수
William JO
·
2021년 8월 18일
팔로우
0
Naver Boostcamp AI Tech 2기
0
Naver Boostcamp AI Tech 2기
목록 보기
12/32
✏️AutoGrad & Optimizer
DL model architecture는 여러
*layer의 반복과 연속(block)
torch.nn.Module
딥러닝을 구성하는 layer의 base class
input, output, forward, backward 정의
학습의 대상이 되는 parameter(tensor) 정의
torch.nn.Parameter
Tensor 객체의 상속 객체
nn.Module 내에 attribute가 될 때는 required_grad=True로 지정되어 학습 대상이 되는 Tensor → AutoGrad
우리가 직접 지정할 일은 잘 없음
-> 대부분의 layer에는 weights 값들이 지정되어 있음
Backward
layer에 있는 parameter들의 미분을 수행
forward의 결과값 (model의 output = 예측치)과 실제값 간의 차이(loss)에 대해 미분을 수행
해당 값으로 parameter 업데이트
Backward from the scratch
실제 backward는 Module 단계에서 직접 지정가능 → AutoGrad
Module에서 backward와 optimizer오버라이딩
사용자가 직접 미분 수식을 써야함
-> 쓸 일은 없지만 순서는 이해할 필요가 있음
🔗Image Reference
https://bit.ly/3lv0eAJ
✏️Dataset & Dataloaders
transform을 통해서 Dataset에서 정의해준 data들이 toTensor가 된다.
Dataset 클래스
데이터 입력 형태를 정의하는 클래스
데이터를 입력하는 방식의 표준화
최근에는 HuggingFace등 표준화된 라이브러리 사용
유의점
모든 것을 데이터 생성 시점에 처리할 필요 X
ex) image의 tensor 변화는 학습에 필요한 시점에 변환
Image, Text, Audio 등 데이터 종류에 따른 다른 입력정의
DataLoader 클래스
Data의 Batch를 생성해주는 클래스
학습직전 (GPU feed전) 데이터 변환을 책임 →
to tensor
tensor로 변환 + batch 처리가 메인 업무
병렬적인 데이터 전처리 코드 고민 필요
🔗Reference
https://subinium.github.io/pytorch-dataloader/
📕특강 - Unit Test
debugging을 잘 하는 것이 코딩을 잘 하는 것이다
오류가 바로 눈에 보일 수 있게 코딩하는 것
이 더 좋다 →
TDD Unit Test (자동화 테스트)
ATDD & TDD
Unit Test
dependency가 존재하지 않고,
method 단위
로 test
빠르게 내가 작성한 코드의 문제점을 찾을 수 있다.
Integration Test
dependency가 존재하는 통합 test
unit test 후에 하고, 어디서 문제가 일어났는지 찾기 힘들다.
TDD 작성법
Write a failing unit test
Write production code to make test pass
Remove duplication and improve design (Refactoring)
ML Unit Test
ML Engineer들은 한 function에 다 몰아넣는 경향이 있다 → function은 작게, cohesive하게 (기능 하나만 구현) 작성되어야 유지보수, 테스트에 용이하다.
Compose method pattern
Extract method
training이 잘 되는 것인지 먼저 확인해라!
-> 작은 dataset부터 점검 ex)
3일동안 걸린 학습 결과가 아무것도 없다..?
William JO
🏆
팔로우
이전 포스트
[3주차] 8.17 화
다음 포스트
[3주차] 8.19 목
0개의 댓글
댓글 작성
관련 채용 정보