인공지능 (기본 딥러닝)/딥러닝 및 파이토치 기타 정리15 [Multi GPU] MultiGPU를 통한 학습 1. 핵심 코드import torch.nn.parallel# deivce_ids : 학습에 사용할 GPU# oudput_device : 출력이 모이는 GPU, 즉 loss 계산과정을 output_device에서 하겠다는 의미.resnet_model = nn.DataParallel(resnet_model, device_ids=[0,1,2],output_device=2) - 작동원리. 1. 매 iteration마다 Batch를 GPU의 개수만큼 나눈다. (scatter) 2. 모델을 각 GPU에 복사함. (replicate) 3. 각 GPU에서 forward 진행. 4. 각 GPU에서의 출력을 하나의 GPU로 모음 (gather) 1. 하나의 GPU에서 out.. 2024. 8. 27. [LoRA] Low-Rank Adaptation of Large Language models 목적 : Pretrained 된 대규모 언어 모델을 효율적으로 Finetuning 하기 위함특징 : 모델의 구조를 변경하지 않고, 기존의 가중치 행렬에 저차원 행렬을 더하는 방식. 2024. 8. 22. [import os] 파일 호출, 삭제, 생성 명령어. 1. 파일 경로 join을 활용한 호출.import ostest_path = './dataset/video'file_name = 'basketball_1'path= os.path.join(test_path, 'YouTubeClips', file_name) 2. 특정 path 삭제. -주의사항 : shutil.rmtree 는 path 하위 디렉토리의 모든것을 삭제함으로 주의 해야함.import osif os.path.exists(path): shutil.rmtree(path) 3. 폴더 생성. - os.makedirs 는 하위 디렉토리의 폴더까지 한번에 생성할 수 있음. ex) mkdir의(폴더 생성 명령어) 경우 path= './a/b' 를 하면 a폴더가 없다면 b를 생성.. 2024. 5. 26. [Pytorch, Huggingface] Pretrained Model 의 특정 Layer 만 Freeze 하기 ► Pretrained되어 있는 모델을 load를 하면 Freeze(bias=False)되어 있는 것도 있고 Trainable한 파라미터(bias=True) 인 것도 있다. 어떤 문제를 해결할 것이냐에 따라 Freeze가 유용할수도 있고 아닐 수도 있다. 이번 글에서는 Freeze를 하는 방법에 대해 소개와 동시에 필요한 layer만 Trainable하게 설정하는 방법을 알아보겠다. → 특정 layer만을 Trainable 하게하는 방법은 다음과 같다. 1. 모든 layer에 대해 False로 설정 (=Freeze). 2. 그 후 원하는 layer들에 대해서만 True로 설정. 1. 모델로드→ DETR모델 활용중from transformers import DetrForObj.. 2024. 4. 28. [Pytorch, Huggingface] Pretrained Model 의 특정 Layer 만 추출 목차모델 로드특정 Layer 만을 추출backbone 모델추출구체적인 특정 layer만 추출 1. 모델 로드from transformers import DetrForObjectDetectionmodel_DETR= DetrForObjectDetection.from_pretrained("facebook/detr-resnet-50", revision="no_timm")# Model 의 key 값 확인for i in model_DETR.state_dict().keys(): print(i) → model 의 key 값 출력 결과model.backbone.conv_encoder.model.embedder.embedder.convolution.weightmodel.backbone.conv_encoder.m.. 2024. 4. 26. [Huggingface] 가중치 없이 모델 로드 및 모델 구조 변경 1. 가중치 없이 모델 로드 ► 우리는 허깅페이스에서 weight, bias가 최적화 되어있는 pretrained된 모델을 사용한다. 하지만 모델의 weight, bias를 제외하고 아키텍쳐만 필요할 때가 있다. Hugging Face에서는 친절하게도 이러한 기능을 제공을 해준다. - Huggingface에 원하는 모델을 검색후 config를 사용하면 된다. (아래예시는 DETR예시) (상단 코드 weight load 안함, 하단 코드 weight load 함) # load without weight and bias # Initializing a DETR facebook/detr-resnet-50 style configuration from transformers import DetrForObjectDe.. 2024. 4. 23. 이전 1 2 3 다음