개요

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: cpu

1.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 폴더 → 라벨 0
  • dog 폴더 → 라벨 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

정규화 효과:

  • 학습 안정성 향상
  • 그래디언트 소실/폭발 방지
  • 학습 속도 개선

4. 학습 설정