일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 부스트캠프
- Programmers
- GPT
- LeetCode
- 프롬프트
- LLM
- 코테
- 프로그래머스
- Linear Regression
- 머신러닝
- 알고리즘
- transformer
- machinelearning
- Python
- ChatGPT
- deque
- 코딩테스트
- 파이썬
- Django
- gradient descent
- 기계학습
- Linear Model
- Deeplearning
- rnn
- prompt engineering
- BFS
- 일기
- attention
- NLP
- dl
- Today
- Total
목록리스트 (91)
크크루쿠쿠
Segmentation Segmentation이란 pixel 단위로 classifiacation을 수행하는 것 Semantic Segmentation vs Instance Segmentation 우선 논문을 보기 전에 이 두 가지를 구분하면 좋을 것 같다. 그림을 보면 이해가 편한데 - Semantic Segmentation: 같은 객체끼리는 한가지 색으로 Masking - Instance Segmentation: 같은 객체라도 개별 Object별로 Masking을 수행하는것. 즉 Instance segmentation은 각 픽셀별로 어떤 카테고리 속하는지 계산X -> 각 픽셀별로 object가 있는지 없는지만 계산 이번에 볼 논문 Mask R-CNN은 Instance Segmentation에 속합니다...
공포의 단어 OOM.. ->pytorch 뿐만 아니라 tensorflow도 마찬가지.. (컴퓨터는 거짓말 안 해도 GPU는 하더라..) 왜 어려운가? - 왜 발생했는지 알기 어려움 - 어디서 발생했는지 알기 어려움 - Error backtracking이 이상한 곳으로 감 - 메모리의 이전상황 파악이 어려움 -> 메모리가 어떻게 iteration마다 사용하는지 모름 가장 쉬운 해결방법! - Batch Size down -> GPU clean -> Run 그 외에 발생할 수 있는 문제들.. GPUUtil 사용하기. - nvidia-smi 처럼 GPU의 상태를 보여주는 모듈 - Colab은 환경에서 GPU 상태 보여주기 편함 - iter마다 메모리가 늘어나는지 확인! !pip install GPUtil imp..
Hyperparameter Tuning - 모델 스스로 학습하지 않는 값은 사람이 지정 -> Hyperparameter - Hyperparameter에 의해서 값이 크게 좌우 될 때도 있었지만.. - 마지막 0.01을 쥐어짤 때 도전해볼만! 가장 기본적인 방법 - grid,random grid -> 일정하게 하나하나 찾아봄 random -> 말그대로 random 최근에는 베이지안 기반 기법들이 주도한다. Ray - multi-node multi processing 지원 모듈 - ML/DL 병렬 처리를 위해 개발된 모듈 - 기본적으로 분산병령 ML/DL 모듈의 표준 - Hyperparameter Search를 위한 다양한 모듈 제공 (파이썬의 일반 병령처리도 맡긴다)
오늘날의 DL은 엄청난 Data와의 싸움 -> 처리하기 위한 좋은 장비들이 필요함. Multi-GPU 어떻게 GPU를 다룰 것인가. 개념정리 - Single vs. Multi - GPU vs. Node node->System 즉 1대의 컴퓨터 - Single Node Single GPU - Single Node Multi GPU - Multi Node Multi GPU (어려움) TensorRT를 사용해 GPU 효율적으로 사용. Model parallel - 다중 GPU에 학습을 분산하는 두 가지 방법 -> 모델을 나누기/ 데이터를 나누기 - alexnet에서 보는거처럼 모델 나누는법은 예전부터 씀. - 모델의 병목, 파이프라인의 어려움으로 인해 고난이도임. class ModelParallelResNet..
학습 결과를 공유하고싶다! -> 학습 결과를 저장할 필요가 있음. model.save() - 학습의 결과를 저장하기 위한 함수 - 모델 형태(architecture)와 parameters를 저장 - 모델 학습 중간 과정의 저장을 통해 최선의 모델 선택 - 만들어진 모델을 공유하여 학습 재연성 향상. state_dict -> parameter만 구조 포함 X Checkpoints - 학습 중간결과를 저장하여 최선의 결과 선택 - earlystopping 기법 사용시 이전 학습의 결과물 저장 - loss와 metric 값을 지속적으로 확인 저장 - 일반적으로 epoch loss metric 함께 저장. Transfer Learning - 다른 dataset으로 만든 모델을 현재 데이터에 적용 - 일반적으로 ..
모델에 데이터를 먹이는 방법! Loader -> 묶어서 feeding Dataset Class - data 입력 형태를 정의하는 클래스 - 데이터를 입력하는 방식의 표준화 - Image, Text, Audio 등에 따른 다른 입력정의 import torch from torch.utils.data import Dataset, DataLoader class CustomDataset(Dataset): def __init__(self, text, labels): self.labels = labels self.data = text def __len__(self): return len(self.labels) def __getitem__(self, idx): label = self.labels[idx] text = ..
논문을 구현해 보자! -> 반복의 연속이다! Layer = Block 이러한 Layer(Block) 들의 반복이다. torch.nn.Module 딥러닝을 구성하는 Layer의 base class 학습의 대상이 되는 parameter(weight) 정의 nn.Parameter - Tensor 객체의 상속 객체 - nn.Module 에서 attribute 가 될 때 required_grad=True 가 지정되어서 학습 대상이 되는 Tensor -> AutoGrad 대상 - 우리가 직접 지정할 일은 잘 없음. ex) XW+b class MyLiner(nn.Module): def __init__(self, in_features, out_features, bias=True): super().__init__() s..
ML 코드는 언제나 Jupyter? -> 영원히 세발 자전거를 탈수는 없다. - 초기 단계에서는 대화식 개발 과정이 유리 -> 학습과정과 디버깅 등 지속적인 확인. - 배포 및 공유 단계에서는 notebook 공유의 어려움 -> 쉬운 재현의 어려움, 실행순서 꼬임. - DL 코드도 하나의 프로그램이기 떄문에 개발 용이성+유지보수 향상 필요. 다양한 프로젝트 템플릿이 있다. 예시로 https://github.com/victoresque/pytorch-template GitHub - victoresque/pytorch-template: PyTorch deep learning projects made easy. PyTorch deep learning projects made easy. Contribute to..