| 파일 | 역할 | 주요 함수/클래스 | 함수/클래스 역할 |
|---|---|---|---|
| config | 프로젝트 설정 관리 | - | 데이터 경로, 전처리·학습 설정, 학습/검증/테스트 비율 등 관리 |
| main | 학습 및 실행 제어 | - | 전체 파이프라인 실행: 데이터 준비 → 모델 생성 → 학습 → 평가 |
| transforms | 이미지 전처리 | ImageTransform | - __init__: 학습/검증용 변환 정의 (Resize, Crop, Flip, Normalize) - __call__: 입력 이미지에 변환 적용 |
| dataset | 데이터셋 구성 및 분할 | DogvsCatDataset | - __init__: 파일 목록과 라벨 생성, 변환기 저장 - __len__: 데이터셋 크기 반환 - __getitem__: 이미지 불러오기 + 변환 + 라벨 반환 |
prepare_data | - 폴더에서 이미지 수집 - 학습/검증/테스트 세트로 분할 | ||
| dataloader | 데이터로더 생성 | create_dataloaders | 학습/검증용 데이터셋 → 데이터로더 생성 |
get_test_dataloader | 테스트용 데이터셋 → 데이터로더 생성 | ||
| model | 모델 정의 및 생성 | LeNet | CNN 모델 정의: 2개의 Conv+ReLU+MaxPool, FC층, Forward 정의 |
count_parameters | 학습 가능한 파라미터 수 계산 | ||
create_model | 모델 생성 후 디바이스로 이동, 파라미터 수 출력 | ||
| trainer | 학습 과정 수행 | train_model | - epoch 반복, train/val phase 수행 - loss 계산, 역전파, optimizer step - 검증 성능 최고 모델 저장 - 최종 모델 반환 |
| evaluator | 모델 평가 | evaluate_model | 테스트/검증 데이터셋에 대한 정확도, 손실 계산 및 리포트 생성 |
| test | 테스트 및 예측 수행 | test_model | 최종 모델 불러오기 → 테스트 데이터 예측 → 결과 저장/리포트 생성 |