PyTorch의 장점
Pytorch Operation
Tensor
View : reshape과 동일하게 tensor의 shape을 변환
Squeeze : 차원의 개수가 1인 차원을 삭제
Unsqueeze : 차원의 개수가 1인 차원을 추가
행렬의 곱셈은 mm 사용
🔥Pytorch의 핵심은 자동 미분의 지원 -> backward 함수 사용🔥
1번 과제
torch.Tensor
- 클래스
- int 입력시 float로 변환
- torch 데이터 입력시 입력 받은 데이터의 메모리 공간 사용
- list, numpy 데이터 입력시 입력 받은 데이터를 복사하여 새롭게 torch.Tensor를 만든후 사용
torch.tensor
- 함수
- int 입력시 그대로 int 입력
- 입력 받은 데이터를 새로운 메모리 공간으로 복사 후 사용
nn.Module
Python List
PyTorch ModuleList
Parameter
tensor v.s Parameter
buffer
named_children, named_modules
hook
apply
과제의 퀄러티에 놀랐다! 과제만 해도 파이토치에 대해 공부량이 엄청나다!!
index_select, gather, squeeze, unsqueeze 정확하게 알고 넘어가기!
조원 중 석암님이 깃허브의 PR관련해서 설명해주셨다. 설명을 정말 잘해주셔서 쉽게 이해되고 바로 실행할 수 있었다. 그리고 예빈님이 오늘 강의에 대해 요약을 해주셨는데 파이토치를 해본적이 있으셔서 본인 경험 팁을 알려줬는데 엄청 도움이 됬다!
피어세션
torch.nn.Module
nn.Parameter
backward
Dataset 클래스
DataLoader 클래스
2번 과제 정리
부스트캠프의 난이도가 점점 올라가는 거 같은데 내 실력은 그대로이다... 남들보다 더 열심히해야되는데 ㅠㅠㅠ 꾸준히 알고리즘도 공부하자!!
model.save()
torch.save(model.state_dict(), 'file_path') # 모델의 파라미터 저장
new_model = theModelClass()
new_model.load_state_dict('file_path') # 같은 모델의 형태에서 파리미터만 load
torch.save(model, 'file_path') # 모델의 architecture와 파라미터 저장
model = torch.load('file_path') # 모델의 architecture와 함께 load
checkpoints
Transfer learning
Tensorboard
weight & biases
-협업, code, versioning, 실험 결과 기록 등 제공
오늘 배운 모니터링 툴들을 다음 주 p stage 때 사용하기 위해 공부해봐야겠다!
피어세션때 다른 캠퍼님들이 강의를 요약해주고, 멘토님께서 좋은 유투버들을 많이 소개시켜준 날이다.
Model parallel
Data parallel
다중 GPU 학습을 분산하기 위해 데이터를 나눈다
데이터를 나눠 GPU에 할당 후 결과를 평균을 취하는 방법
DataParallel - 단순히 데이터를 분배 후 평균을 취함 / GPU 사용 불균형 문제 발생
DistributedDataParallel - 각 CPU마다 process 생성하여 개별 GPU에 할당
모델의 성능을 끌어 올리는 방법
1. 모델을 바꾼다
2. 🔥새로운 데이터를 추가하거나 수정한다🔥
3. Hyperparameter Tuning
Hyperparameter Tuning
Ray
OOM (Out Of Memory)
GPUUtill 사용하기
torch.cuda.empty_cache()
del 명령어 적절히 사용하기
가능 batch 사이즈 실험하기
torch.no_grad() 사용하기
이번 주는 뭔가 후딱 지나간 느낌이다. 과제에서 정신을 못 차리는 바람에 강의에도 집중하지 못한 느낌이다. 그리고 뭔가 할게 많아서 정리가 안되는 기분이다. 주말을 이용해서 컨디션도 충전하고 계획을 세워서 정리해야 될거 같다. 그래도 같이 공부하는 조원들이 있어서인지 포기하지 않고 한다는 생각이 든다. 다들 열정이 있으셔서 그런지 나도 그 열정을 따라가고 싶은 마음이 크다. 팀원들에게는 항상 고마운 마음이 든다. 다음주에도 더 열심히 집중해보자!