일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 개인 PT
- 건강
- github
- 다이어트
- 프로그래머스
- 바디프로필
- 라섹 수술 후기
- 디버깅
- 바프준비
- 티스토리챌린지
- PT 운동
- pytorch
- Knowledge Tracing
- 논문 리뷰
- 코드
- 개인 운동
- 운동
- 코딩테스트
- 데드리프트
- 체스트프레스
- 하체운동
- 암풀다운
- 덤벨운동
- 코테 공부
- 오블완
- 개발자
- 연구 시작
- 영화 비평
- 코테준비
- 개인 피티
- Today
- Total
목록개발자 (5)
치즈의 AI 녹이기

state_dict란 이름 그대로 Python 사전(dict) 객체 입니다. 오늘은 state_dict에 어떤 것을 저장할 수 있을 지 알아보겠습니다. Best 모델 저장하기 학습 도중에 가장 좋은 성능을 가지는 모델을 저장 한다면, 학습을 중단한 뒤에도 해당 모델을 불러와 학습을 재개할 수 있습니다. 저장하는 지점 아래의 동료 코드를 보면, 현재 사용하고 있는 metric인 'ndcg 5'를 기준으로 best 수치를 갱신할 때마다 새롭게 정의한 함수 save_checkpoint를 통해 여러 매개변수 및 하이퍼 파라미터들을 저장하고 있습니다. 저장하는 방법 save_checkpoint 함수를 보면, state이라는 이름으로 dict 타입의 변수를 하나 만들어 인자에서 전달받은 매개변수 및 하이퍼 파라미터..

오늘은 nn.DataParallel를 사용하여 데이터 병렬처리하는 코드를 가져왔습니다. 데이터 병렬처리란, 다수의 GPU에서 모델을 병렬로 실행하여 작업할 수 있도록 처리하는 것입니다. 먼저 torch.cuda.device_count()를 이용하여 갖고 있는 GPU 개수를 num_gpus에 저장합니다. 그 다음 원하는 모델을 불러 온 후, 갖고 있는 GPU 개수가 2개 이상이면 nn.DataParallel을 사용하여 모델을 wrapping할 수 있습니다. 이렇게만 해주면 알아서 모델 내에 들어오는 데이터를 각 GPU에 할당하여 처리하도록 해줍니다. 특정 모델의 학습 매개변수를 불러와 inference를 하고 싶은 경우, 다음과 같이 isinstance(model, nn.DataParallel)을 활용하여..

오늘은 Transformers 라이브러리에서 제공하는 pre-trained model들을 가져와 내맘대로 커스터마이징하는 방법을 소개합니다. HuggingFace란, 자연어처리(NLP) 분야에서 유명한 오픈소스 커뮤니티입니다. 특히 이곳에서 구축한 Transformers 라이브러리는 BERT, RoBERTa, GPT-2 or DistilBERT 등의 여러 NLP 모델들을 단순한 코드로도 실행할 수 있도록 만들었습니다. 아래 링크에서 Transformers 라이브러리에 구현된 모델들 코드를 확인할 수 있습니다. https://github.com/huggingface/transformers/tree/master/src/transformers/models huggingface/transformers 🤗 Tra..

오늘 가져온 것은 Embedding 클래스입니다. 위 코드에서 제가 주목한 점은 nn.Embedding으로 self.emb 변수를 초기화하는 46번 줄의 코드입니다. sparse argument를 사용하고 있어 이에 대해 구글링 해보았습니다. 해당 동영상을 참고하여 sparse = False일 때와 True일때를 비교해 보면, 위 코드를 작성해서 나온 결과, 처음에 10 x 10으로 초기화했던 embedding의 매개변수들의 변화도(gradient)값입니다. 이번엔 sparse=True로 두었을 때 결과값을 보겠습니다. 즉, 변화도에서 0이 아닌 것만 weight 업데이트 되도록 해줍니다. memory 절약에 도움이 될것 같습니다. Embedding 코드의 출처는 앞선 글에서 언급하였습니다.