01 새로운 데이터에서의 성능
예시 상황 연습한 사진을 잘 맞히는 모델이 처음 보는 사진도 잘 구분할지, 어떻게 확인할 수 있을까요?
설명
- 학습 데이터의 적합도와 Generalization을 구분
- 학습에 사용하지 않은 데이터로 성능 평가
예시 상황 연습한 사진을 잘 맞히는 모델이 처음 보는 사진도 잘 구분할지, 어떻게 확인할 수 있을까요?
예시 상황 모델이 몇 개를 맞혔는지 아는 것과 어떤 사진을 틀렸는지 보는 것은, 각각 무엇을 알려줄까요?
Shift+Enter, 위에서부터 순서대로.직접 입력 작성 → Shift+Enter.mnist_data.CERTIFICATE_VERIFY_FAILED 발생 시: Applications의 해당 Python 폴더에서 Install Certificates.command 실행 후 재시도.train_data[0]에서 이미지의 shape와 Label을 출력하고, 이미지의 세 축이 무엇인지 적으세요.train_loader를 끝까지 순회해 Batch별 이미지 수를 리스트에 모으세요. 첫 Batch 크기·마지막 Batch 크기·전체 Batch 수를 적으세요.len(train_used)와 Batch Size 64로 예상한 마지막 Batch 크기를 계산해 출력값과 대조하세요.QUICK_RUN=True인 데이터 셀과 CNN 학습·평가 셀을 차례로 실행하세요. 학습 epoch·학습 이미지 수·평가 이미지 수를 기록하세요.model.train(), 평가 코드에서 model.eval()과 torch.no_grad()를 찾으세요. 각각 Dropout 동작과 Gradient 기록 중 무엇을 제어하는지 한 문장씩 설명하세요.전체 데이터로 비교하고 싶다면 QUICK_RUN=False로 바꾼 뒤 데이터 셀부터 다시 실행할 수 있습니다.
examples와 mistakes를 시각화한 결과의 정답·예측 Label을 각 이미지와 대조하세요. 맞힌 예와 틀린 예에서 어떤 숫자를 어떤 숫자로 예측했는지 적고, 틀린 이미지에서 눈에 띄는 특징을 설명하세요.QUICK_RUN=True의 일부 표본 평가값인지, 전체 Test Set 평가값인지 구분합니다.코드, 실제 Output·그래프, 직접 작성한 해석을 포함하세요. 제출은 KLAS를 이용하며 기한은 학기 일정과 최신 공지를 확인합니다.
파일명: 이름_학번_10주차.ipynb.
실행 환경을 다시 시작하고 전체 코드를 위에서부터 실행한 뒤 저장하세요.
Dropout을 켠 상태로 같은 영상을 두 번 평가한 경우
debug_image = test_used[0][0].unsqueeze(0)
for training in [True, False]:
model.train(training)
with torch.no_grad():
first = model(debug_image)
second = model(debug_image)
print("train" if training else "eval",
"maximum difference:", (first - second).abs().max().item())
model.eval()eval mode입니다.