개요
config.py는 프로젝트의 모든 설정값과 하이퍼파라미터를 중앙에서 관리하는 파일입니다. 학습 환경, 데이터 경로, 전처리 설정, 학습 파라미터 등을 한 곳에 정의하여 코드의 유지보수성과 재현성을 높입니다.
1. 환경 설정
1.1 디바이스 설정
import torch
DEVICE = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")| 항목 | 설명 |
|---|---|
| 역할 | GPU 사용 가능 여부에 따라 학습 디바이스 자동 선택 |
| GPU 사용 | CUDA 사용 가능 시 cuda:0 (첫 번째 GPU) |
| CPU 사용 | CUDA 없을 때 cpu |
| 효과 | GPU 가속으로 학습 속도 대폭 향상 |
디바이스 확인:
print(f"Using device: {DEVICE}")
# GPU: Using device: cuda:0
# CPU: Using device: cpu1.2 디렉토리 설정
import os
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
RESULT_DIR = os.path.join(BASE_DIR, "result")
os.makedirs(RESULT_DIR, exist_ok=True)| 변수 | 설명 | 예시 |
|---|---|---|
BASE_DIR | 현재 파일(config.py) 위치 | /home/user/project |
RESULT_DIR | 학습 결과 저장 경로 | /home/user/project/result |
exist_ok=True | 디렉토리 존재 시 에러 없이 무시 | - |
| 저장되는 파일: |
- 학습된 모델 가중치 (
.pth) - 학습 곡선 그래프 (loss, accuracy)
- 로그 파일
2. 데이터 경로 설정
CAT_DIRECTORY = "/home/user3/data/CatAndDog/cat"
DOG_DIRECTORY = "/home/user3/data/CatAndDog/dog"폴더명 = 라벨:
cat폴더 → 라벨 0dog폴더 → 라벨 1
3. 이미지 전처리 설정
IMAGE_SIZE = 224
MEAN = (0.485, 0.456, 0.406)
STD = (0.229, 0.224, 0.225)3.1 IMAGE_SIZE
| 항목 | 값 | 설명 |
|---|---|---|
| 크기 | 224×224 | 모델 입력 크기 |
| 선택 이유 | ImageNet 표준 | 대부분의 사전학습 모델이 224 사용 |
| 영향 | 클수록 정보↑, 메모리↑ | 작을수록 속도↑, 정보↓ |
3.2 정규화 파라미터 (MEAN, STD)
MEAN = (0.485, 0.456, 0.406) # RGB 각 채널의 평균
STD = (0.229, 0.224, 0.225) # RGB 각 채널의 표준편차| 항목 | 설명 |
|---|---|
| 출처 | ImageNet 데이터셋 통계값 |
| 역할 | 이미지 정규화 (평균 0, 분산 1) |
| 공식 | output = (input - mean) / std |
정규화 예시:
# Red 채널 예시
input_pixel = 0.8 # ToTensor 후 값
normalized = (0.8 - 0.485) / 0.229
= 0.315 / 0.229
= 1.376정규화 효과:
- 학습 안정성 향상
- 그래디언트 소실/폭발 방지
- 학습 속도 개선