728x90
반응형
- 학습이 너무 느려서 멘토님께 여쭤봤다가 GPU 써보셨냐고 해서 안되는 줄 알았다니깐 가능하대서 바로 써봄.
# 주피터에서 pytorch 설치
!pip install torch torchvision torchaudio
# pytorch 버전 확인 필요!! PyTorch 1.12 이상 버전에서 M1의 GPU를 활용
import torch
print(torch.__version__) # PyTorch 버전 확인
# MPS는 M1 GPU에서 Metal API를 사용하는 PyTorch 백엔드입니다.
print(torch.backends.mps.is_available()) # M1 GPU(Metal)가 사용 가능한지 확인
# True 나와야 함
#torch는 gpu를 기본값으로 쓰도록 설정 -> 이거 안하면 CPU가 돌아감.. 여러 번.. 했음 ^^
#device = torch.device("mps")
- 나는 아래 글과 달리 gpu에서 파이썬을 확인할 수는 없으나,
python이 미친듯이 돌아가고 배터리가 빠른 속도로 낮아진다는 것은 알겠다.
- runCat이 진짜 미친듯이 달리고 있다.. ㅎㅎㅎ
"파일을 작동시킬 경우, ‘활성상태보기’에서 Python이 차지하는 GPU 활용 비율이 급격히 상승하는 것을 확인할 수 있다."
[PyTorch] 💻 맥북 에어 M1칩에서 GPU 사용하기(MPS 장치 활용) for 머신러닝 학습
작년 초에 Pytorch를 이용해 딥러닝 모델을 학습시킬 때 겪었던 문제가 있었다. 필자는 macOS intel칩 데스크톱과 macOS m1칩 맥북 에어 유저였는데, 엔비디아에서 macOS에 대한 cuda지원을 중단해서, GPU를
velog.io
- 다 돌아가면, 텐서보드로 학습률을 확인해 봐야겠다.
- yolo는 텐서보드가 바로 연결되서 진짜로 편한 듯..
- 아래는 GPT가 정리해줌
- 배치 크기와 에폭 수가 컴퓨터 사양과 관련된 이유:
- 배치 크기:
- 컴퓨터 사양이 좋으면 배치 크기를 크게 설정하여 병렬 처리를 최적화하고, 더 많은 데이터를 한 번에 처리할 수 있습니다. 그로 인해 학습 속도가 빨라집니다.
- 그러나 사양이 낮을 경우, 너무 큰 배치 크기를 설정하면 메모리 부족이나 처리 속도 저하가 발생할 수 있습니다. 따라서 사양에 맞는 배치 크기를 설정하는 것이 중요합니다.
- 에폭 수:
- 에폭 수는 학습 데이터에 대해 몇 번 반복 학습할지를 결정합니다. 사양에 상관없이 에폭 수가 많을수록 모델이 더 많은 데이터를 학습하고 성능이 좋아질 가능성이 높습니다.
- 하지만, 너무 많은 에폭 수는 **과적합(overfitting)**을 유발할 수 있습니다. 특히 데이터가 충분히 많지 않은 경우 과적합이 발생할 수 있기 때문에, 적절한 에폭 수를 선택해야 합니다.
- 배치 크기와 에폭 수가 성능에 미치는 영향:
- 배치 크기:
- 큰 배치 크기는 학습 속도를 높일 수 있지만, 너무 크면 일반화 성능이 떨어질 수 있습니다. 작은 배치 크기는 더 자주 가중치를 업데이트하고, 더 나은 일반화 성능을 이끌어낼 수 있습니다.
- 작은 배치 크기에서는 노이즈가 많아서 학습이 불안정할 수 있지만, 과적합 방지에 도움이 될 수 있습니다.
- 에폭 수:
- 에폭 수가 많으면 모델이 데이터를 여러 번 학습하여 성능이 좋아지지만, 너무 많으면 과적합이 발생할 수 있습니다. 일반적으로 조기 종료(early stopping) 기법을 사용하여, 성능이 더 이상 개선되지 않을 때 학습을 중단합니다.
결론:
- 컴퓨터 사양에 따라 배치 크기와 에폭 수를 적절하게 조절해야 효율적인 학습이 가능합니다.
- 배치 크기는 학습 속도에 영향을 주며, 에폭 수는 모델의 성능(정확도)에 영향을 미칩니다.
- 성능을 최적화하려면, 사양에 맞는 배치 크기와 적절한 에폭 수를 설정해야 합니다. 과적합을 피하려면, 배치 크기를 작게 하고, 에폭 수는 조기 종료를 고려하여 설정하는 것이 좋습니다.

따라서, 배치 크기와 에폭 수를 사양에 맞추되, 성능을 최적화하려면 모델의 일반화 성능을 고려한 조정이 필요합니다.
728x90
반응형
'Projects > Comento_cctv_object_detection' 카테고리의 다른 글
[2주차 라이브세션 후기] 학습모델, 코드 등 다양하게 멘토링 해주심 (0) | 2025.03.26 |
---|---|
[trouble_shooting] yolov5랑 8, 11은 wandb 결과 값이 다름. 굳이 같게 x (0) | 2025.03.21 |
[학습 데이터 셋 분리] replace() 보다는 os.path.splitext() (0) | 2025.03.17 |
[trouble_shooting] 이미지 크기 비교의 속도를 위해서ThreadPoolExecutor 사용 (0) | 2025.03.15 |
[코멘토 1차 과제 피드백] 꼼꼼하게 과제물의 장단점을 나열하고, 질문에 답해주심. (0) | 2025.03.15 |