프로젝트 주제 성별(남,여), 마스크착용(착용, 미착용, 대충착용), 연령대(30세 이하, 31세~59세, 60세 이상) 18개의 class를 classification 하자 프로젝트에 사용된 기술 Pytorch WandB Data Augmentation: TTA (TestTimeAugmentation) face recognition k-fold cutmix soft ensemble Multi-Class Model Concatenation 사용한 모델 Rexnet Efficientnet Regnety 진행 요약 1주차 첫주차때는 개인전으로 개인이 직접 Zero base부터 구성하는 작업을 했다. 이 기간을 나는 파이토치에 대한 감을 잡는 시간으로 활용했다. EDA를 통해 데이터가 어떻게 분포되어있고 활용..
이미 vscode의 keymap으로 적응되어버려서 pycharm의 새로운 단축키를 외우기가 힘들다... 그래서 vscode의 단축키를 그대로 pycharm에서 사용하려고한다. File -> Settings 클릭 Get more keymaps in Settings | Plugins 클릭 VSCode Keymap Install VSCode로 변경
1일차 EDA 2일차 Data Set 처음 주어진 vanilla data의 변환이 필요하기 때문에 Data Set이 필요하다 전처리 작업에 많은 resource가 소요됨 이미지 Bounding box 필요 이상으로 많은 정보를 가지고 있기 때문에 crop해준다 Resize 도메인에 따라 형식에 따라 다양한 case가 존재한다 Generalization Bias & Variance Train / Validation 데이터가 줄어들어 오히려 언더피팅이 되지않나 라고 생각하지만 학습에 이용되지 않은 데이터 셋으로 검증을 해야만 한다. validation set도 train에 관여해서 일반화 되기때문에 학습이 끝난 이후의 test set도 필요하다. Data Augmentation 주어진 데이터가 가질 수 있는..
OOM(out of memory) OOM이 해결하기 어려운 이유 어디서 발생했는지 알기 어려움 Error backtracking이 이상한데로 감 메모리의 이전상황의 파악이 어려움 GPU Util 사용하기 nvidia-smi 처럼 GPU의 상태를 보여주는 모듈 colab은 환경에서 GPU 상태를 보여주기 편함 iter마다 메모리가 늘어나는지 확인가능 ! pip install GPUtil import GPUtil GPUtil.showUtilization() torch.cuda.empty_cache()써보기 사용되지 않는 GPU상 cache를 정리 가용 메모리를 확보 del 과는 구분이 필요 reset 대신 쓰기 좋은 함수 empty_cache를 사용했을때 강제적으로 garbage collector를 실행 학..
Hyper parameter 모델 스스로 학습하지 않고 학습을할때 사람이 지정해야하는 Parameter ex_ learning rate(NAS), optimizer, 모델의 크기 하이퍼파라미터에 의해 값이 크게 좌우됐지만 요즘은 그닥 마지막 0.01을 쥐어짜야할 때 도전 결과가 잘안나오면 모델을 변경 데이터를 변경 혹은 추가 혹은 점검 hyper parameter tuning -> 이 중 데이터가 가장 중요하다 왜냐하면 이미 좋은 모델이 뭔지 알고있다 하이퍼파라미터 튜닝은 마른 수건도 물이 떨어지는지 꽉 짜보자 하이퍼 파라미터 튜닝에 가장 기본적인 방법 grid search: 2배수 등 규칙적으로 하나씩 찾아본다 random search: 큰 스페이스에서 아무거나 랜덤으로 추출해서 사용해본다 => 예전에..
지금날의 딥러닝은 많은 데이터를 계산시기키 위한 GPU가 많이 필요하다. 개념정리 Single GPU vs Multi GPU 1개의 GPU vs 2개이상의 GPU GPU vs Node Node는 1대의 컴퓨터를 이야기한다. ex_ 1대의 Node안에있는 1대의 GPU를 사용한다. Single Node Single GPU Single Node Multi GPU 한대의 컴퓨터에 여러대의 GPU Multi Node Multi GPU ex_ 서버실 Model parallel 다중 GPU에 학습을 분산하는방법 모델 나누기 - AlexNet도 이 방법을 사용 - 모델의 병목현상이 발생할 수 있다. - 고난이도 과제임 모델 병렬화의 문제점 위의 그림은 병렬화를 하는 의미가 없다 아래 그림처럼 파이프라인을(배치코드를)..
Tensorboard TensorFlow의 프로젝트로 만들어진 시각화 도구 학습 그래프, metric, 학습결과의 시각화 지원 Pytorch도 연결 가능 -> DL 시각화 핵심 도구 도구 scalar: metric(Acc, Loss 등) 상수 값의 연속(epoch)을 표시 -> ex) x축은 epochs y 축은 loss graph: 모델의 computational graph 표시 histogram: weight등 값의 분포를 표현 image,text: 예측값과 실제값을 바로 비교 표시 mesh: 3d 형태의 데이터를 표현 Weight & biases MLOPS 도구이다. 머신러닝 실험을 원활히 지원하기 위한 사용도구 협업, code versioning, 실험 결과 기록 등 제공 MLOps의 대표적인 툴..
초기단계에서는 대화식 개발과정이 유리하다 -> 학습과정과 디버깅 등 지속적인 확인이 가능하기 때문 하지만 배포 및 공유 단계에선 노트북으로 공유하면 재현등이 어렵다. 그래서 OOP + 모듈을 사용하여 프로젝트단위로 진행한다. github 템플릿을 사용해보자! 모듈구성 git clone https://github.com/victoresque/pytorch-template cd pytorch-template ## 해당 명령어로 같은 구조를가진 MyProject 폴더를 생성 python new_project.py MyProject cd MyProject python train.py -c config.json