전체 글 102

효율적인 Hyperparameter Tuning | Ray

Hyperparameter Tuning 효율적으로 하기 Intro. 가장 기본적인 방법으로 grid vs random 있다. 최근에는 베이지안 기반 기법들이 주도하고 있다. Grid Layout learning rate 0.1, 0.01, 0.001 → ... batchsize 32, 64, 128 → ... 조합들을 적용해가며 가장 좋은 하이퍼파라미터를 찾는다. Random Layout 말 그대로 랜덤으로 적용해본다. Ray 특징 multi-node multi processing 지원하는 모듈이다. ML/DL의 병렬 처리를 위해 개발된 모듈이다. 기본적으로 현재의 분산병렬 ML/DL 모듈의 표준 Hyperparameter Search를 위한 다양한 모듈을 제공한다. Code data_dir = os.p..

AI 2024.01.12

Multi-GPU, Parallel | 용어와 개념 간단한 코드[PyTorch] 와 함께 한방에 정리

이번에는 multi gpu를 사용하면서 나올 용어들과 개념들을 정리해보았다. multi gpu하면 꼭 같이 나오는 parallel을 data와 model로 나누어 정리하였다. 코드 Multi-GPU 원래 옛날에는 GPU를 어떻게 하면 적게 쓸까를 고민했지만 최근에는 성능에 초점을 두면서 엄청난 양의 GPU를 쓰고 있다. 용어 정리 Single : 1개 사용 vs Multi : 2개 이상 사용 GPU vs Node : Node는 1대의 컴퓨터를 말한다. Single Node Single GPU : 1대의 컴퓨터에서 1개의 GPU 사용 Single Node Multi GPU : 1대의 컴퓨터에서 여러 개의 GPU 사용 Multi Node Multi GPU : 서버실에서 여러 개의 GPU 사용 Model pa..

AI 2024.01.12

PyTorch Monitoring tools | 학습과정 쉽게 그래프로 살펴보기

오늘은 PyTorch에서 쉽게 그래프 등 시각화하여 살펴볼 수 있는 방법들을 소개하려고 한다. 원래 matplotlib 밖에 모르던 때는 귀찮아서 잘 안그렸지만, 확실히 시각화해서 보는게 학습과정 이해에 필요한 것 같다. 아래의 도구들은 귀찮다라는 말을 달고 사는 내가 쓸 정도니까 대부분의 사람들은 좋아하지 않을까...?라는 생각이 든다.☺️ Monitoring tools 학습과정을 트래킹 하기 위한 도구들이다. Tensorboard Tensorflow의 프로젝트로 만들어진 시각화 도구이다. 학습 그래프, metric, 학습 결과의 시각화를 지원한다. Tensorboard 지원 도구 scalar : metric 등 상수 값의 연속(epoch 단위)을 표시한다. graph : 모델의 computationa..

AI 2024.01.12

PyTorch | Model save, checkpoints, freezing

모델 불러오기 학습 시키다가 갑자기 데이터가 모두 날아가는 경험 한 번씩은 있을 것이다... 이렇게 날아가지 않도록 중간중간 저장시켜주기 위해서 사용하는 함수가 save()이다. Model.save() 학습의 결과를 저장하기 위한 함수 모델 형태와 파라미터를 저장한다. 모델 학습 중간 과정의 저장을 통해 최선의 결과모델을 선택할 수 있다. 만들어진 모델을 외부 연구자와 공유하여 학습 재연경 향상시켜준다. 이 save함수를 사용하여 아래와 같은 코드를 쓸 수 있다. state_dict : 모델의 파라미터를 표시 load_state_dict : 같은 모델의 형태에서 파라미터만 load save(model.state_dict(),~) → 모델의 파라미터를 저장 save(model,~) → 모델의 archite..

AI 2024.01.12

PyTorch | nn.Module, Parameter, Backward

AutoGrad & Optimizer 오늘은 PyTorch에서 AutoGrad와 Optimizer를 위해서 사용되는 객체과 함수들을 소개할 예정이다. nn.Module 딥러닝을 구성하는 Layer의 base class이다. Input, Output, Forward, Backward 정의한다. 학습이 되는 Parameter로 정의가 된다. 그러면 이제 weight를 정의를 해야하는데 이는 nn.Parameter로 정의된다. nn.Parameter Tensor 객체의 상속 객체이다. nn.Module 내에 attribute 가 될 때는 required_grad=True로 지정되어 학습의 대상이 되는 Tensor이다. 직접 설정하는 일은 잘 없다. 이 객체를 사용하지 않고 Tensor를 사용하면 자동미분이 되..

AI 2024.01.12