본문 바로가기

전체 글176

[5분 컷 리뷰] Cyclic learning rate 리뷰 및 사용법 요약Cyclic learning rate (CLR) 은 learning rate을 수동으로 조절해갈 필요없이, 자동으로 최적의 값을 찾는 과정의 스케쥴링입니다. CLR은 LearningRateReduceOnPlatue와 같이 감소하는 방향으로만 학습율을 조절하는 것이 아니라, 특정 영역에서 증감을 반복합니다. 그리고 이를 실험적으로 증명했습니다.    Deep learning 에서의 Learning rate딥러닝의 파라미터 업데이트은 stochastic gradient descent로, 아래와 같은 식으로 학습합니다.$\theta^{t}=\theta^{t-1}-\epsilon_{t}\frac{\partial L}{\partial \theta}$L: 손실함수$\epsilon_{t}$: 학습문제는 학습률이 .. 2024. 5. 13.
Poetry로 의존성관리하기 / CI을 위한 pytest Poetry 설치Poetry은 "https://install.python-poetry.org/"에 있고, 파이썬으로 excute가능하게 되어있어서, Linux, MacOS, WSL에서아래와 같은 명령어로 설치가능합니다.$ curl -sSL https://install.python-poetry.org | python3 -// 환경변수까지 추가합니다.// .bashrc에 "excutebable binary을 바로 환경변수로 추가합니다"$ vi ~/.bashrc// vi에서 아래를 추가"export PATH="/home/heon/.local/bin:$PATH"$ poetry --versionPoetry (version 1.8.3) TOML(Tom's obvious Minimal Language) 포맷TOML파.. 2024. 5. 10.
파이썬 바이트 표현 (bytes, bytearray) 개념정리코드 포인트(code point): 각 유니코드 문자에는 고유한 코드포인트(숫자)가 할당되어있습니다. 이 유니코드 하나하나에 매핑되는 숫자를 코드포인트라고합니다. 1:1로 매핑되어있고, 코드포인트를 어떤 인코딩 방식을 하냐에 따라, 문자열이 달라질 수 있습니다.인코딩: 코드포인트를 바이트 시퀀스로 변환하는 규식을 일컫습니다.디코딩: 바이트 시퀀스를 코드포인트로 역변환 하는 규칙을 일컫습니다유니코드(Unicode): 모든 문자를 컴퓨터에서 일관되게 표현하고 다루기 위한 국제 표준입니다. 모든 문자열은 코드포인트를 이용하여, 1:1 매핑되어있습니다. 그리고 유니코드로 표현되는 경우 "U+"라는 접두사를 사용합니다. 코드포인트: 문자와 1:1로 매핑하는 숫자코드포인트는 문자와 1:1로 매핑되는 숫자입니.. 2024. 5. 7.
nvidia-driver, cuda toolkit update cuda toolkit 12.1 지원pytorch 2버전이상부터는 cuda toolkit 12.1으로 사용하는게 pip 이나 설치가 편하기에, toolkit 12.1을 설치하려고함.sudo ubuntu-drivers autoinstall cuda toolkit 12.1 installubuntu 공식 도큐먼트(URL)을 따라서 설치하려고함.  Trouble shooting 1: package has invalid Support PBheader, cannot determine support levelubuntu 그레픽드라이버 유틸리티인 `ubuntu-drivers list`로 현재 설치가능한 드라이버를 찾다보면 위와 같은 경고를 볼 수 있는 습니다. 아래와 같이 해결했습니다 [URL]. $ sudo apt .. 2024. 5. 3.
Pytorch DDP(Distributed Data Parallel), DP(Data Parallel) 비교 총정리 요약 DPDDP모델 복제 오버해드매 반복마다 각 GPU에 모델 복제초기 한번만으로 프로세스에 모델 복제데이터 분산 및 수집Scatter-Gather방식으로 통신비용발생각 프로세스가 독립적으로 작업(통신비용 적음)GILGIL로인해 multi-thread 성능제한GIL문제없음통신비용GPU간 동기화없음GPU 간 All-redeuce 통신비용발생적합한 환경단일 머신멀티노 DataParallel (DP)DP은 데이터 병렬화 기술 중, 싱글노드에서만 사용할 수 있는 병렬화 기술입니다. DP은 한 프로세스에서만 돌아가기에 "Single process, multi-threaded"입니다. 하나의 프로세스에서 여러 GPU을사용하는 방식입니다. 즉 하나의 프로세스이기 때문에, 모델과 데이터를 한 번만 메모리에 로드하고, .. 2024. 5. 3.
[5분 컷 리뷰] DINO: Emerging Properties in Self-Supervised Vision Transformers IntroductionNLP분야에서는 masked language라는 사전학습 전략으로 Transformer가 매우 인기를 끌었습니다. 반면, 비전테스크에서는 CNN의 대안으로 ViT가 쓰이는 것 같지만, 아직까지는 계산비용도 크고, 데이터도 많이필요해서 큰 이점을 못 얻고 있었습니다. 이 논문은 자기지도학습(Self-supervised learning)이라는 사전학습을 방법론을 이용해서, 비전테스크에서도 성공적인 사전학습을 할 수 있을지, 그리고 그 방법을 제시합니다. 언어문제에서는 self-supervised learning의 pretext task로 masked language 을 진행합니다. 반면, 이미지 분류문제에서는 풍부한 이미지의 정보(예, 형태, 컬러 등)이 이미지에 포함되어 있습니다. 그.. 2024. 4. 25.