일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 데드리프트
- 코딩테스트
- 오블완
- pytorch
- 운동
- Knowledge Tracing
- 개발자
- 프로그래머스
- 논문 리뷰
- 코테 공부
- 라섹 수술 후기
- PT 운동
- 연구 시작
- 코테준비
- Today
- Total
목록분류 전체보기 (160)
치즈의 AI 녹이기
tar.gz 압축 풀기 $ tar -zxvf [file_name.tar.gz]
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..
논문을 보다보면, Experiment Part에서 다음과 같은 실험 표를 많이 볼 수 있었습니다. 따라서 오늘은 Ablation Study에 대해 알아보겠습니다. "Ablate"의 사전적 의미를 해석해 보면, '제거하다'라는 뜻이 있습니다. 이처럼 논문에서 자주 등장하는 용어인 Ablation이란, 논문에서 제안한 딥러닝 모델 내에 적용되었던 여러 Method들을 하나씩 더해보거나 빼 본 후 성능을 비교하는 분석 방법입니다. 이렇게 비교해 봄으로써 해당 Method의 효과를 확인할 수 있습니다. 예를 들어, 위 Table 5에서는 RKT라는 모델을 제안하면서 PE, RE, TE라는 3가지 Method를 적용합니다. 따라서 Ablation Study에서는 PE, RE, TE를 각각 빼보면서 실험한 결과를 ..
구글 드라이브 내 용량이 큰 파일은 로컬에서 다운받아 다시 외부 서버로 옮기는 것보다 바로 외부서버로 다운받는 것이 더 빠를 것 같아서 방법을 찾아보았습니다. 용량이 큰 파일의 경우 다음과 같은 안내 메시지가 뜰 것입니다. 해결 방법 1. 먼저 파일이름(까만색으로 가린 부분)에 마우스를 대고 우클릭 후, '링크 주소 복사'를 눌러줍니다. 2. 링크를 아무데나 붙여넣기 하면 다음과 같은 형식으로 나타날 것입니다. 3. 'id=' 이후에 까만색으로 가려진 부분만 커서로 선택하여 복사해줍니다. 4. 아래 코드를 터미널에 한 줄씩 차례대로 입력해줍니다. file_id는 3번에서 복사한 id를 붙여넣고, file_name은 다운로드 받을 파일 이름 그대로 써주시면 됩니다. file_id="" file_name="..
오늘은 Triplet Loss에 대해 다뤄보도록 합니다. Siamese Network classification task를 풀다보면, class imbalance 문제에 직면하게 됩니다. 어떤 클래스는 데이터의 개수가 매우 많고, 반대로 어떤 클래스는 데이터의 개수가 부족할 수 있습니다. One-Shot Learning은 각 클래스를 학습하기 위해 클래스마다 하나씩의 데이터를 이용하는 방법을 제안합니다. Siamese Network는 이러한 one-shot learning을 가능하게 하는 딥러닝 모델입니다. Siamese Network는 한 개의 Convolution Net을 가지고 두 개의 이미지로 이루어진 한 쌍을 인풋으로 넣어줍니다. 그러면 featuremap(또는 embedding) 한 쌍이 아웃..
Batch Gradient Descent back propagation을 할 때, 모든 데이터 n개에 대해서 m개의 weight에 대해 진행한다. 결국, 1 epoch마다 nxm번의 미분 계산이 필요하다. n과 m이 수십만 개 단위이기 때문에 계산량이 굉장히 많고, 따라서 좀 더 효율적인 optimizing 방식을 찾게 된다. Stochastic Gradient Descent 한개의 데이터마다 한번씩 weight 업데이트. 장점: 수렴속도가 batch gradient descent가 빠름. 단점: 데이터마다 차이가 크면 loss가 튐. Mini-batch Gradient Descent mini-batch 사이즈만큼의 데이터마다 한번씩 weight 업데이트. 장점: 수학적으로 batch gradient d..