Skip to content

seunghyeon528/TA_EEE4178_Project_2021

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 

Repository files navigation

TA_EEE4178_Project_2021

Final Project (~12/14)

  1. 프로젝트 개요
  2. 데이터셋 [train] / [valid] / [[test]]
  3. 데이터 다운로드, 마운트 등 참고 코드 [Project_utils.ipynb]
  4. 데이터 로드를 위한 custom dataset 참고 코드 [dataset.py]

기타 참고 사항

1. GPU 종류

!nvidia-smi

image

2. Train 소요 시간

학습 들어가기 직전 (for epoch in range(num_epochs) 반복문 들어가기 전)

import time
start = time.time() # Train 시작 시간 정보 저장

학습 끝난 직후 (for epoch in ~ 반복문 끝난 직후)

end = time.time() # Train 종료 시간 정보 저장

duration = end - start # 종료 시간 - 시작 시간
print("Training takes {:.2f}minutes".format(duration/60)) #초 단위로 저장되므로, 60으로 나누어 분으로 표시

3. Test.py

train.py 를 통해 학습한 model을 model.pth 형태로 저장 및 다운로드하여 test.py 파일이 있는 곳에 업로드하고, 이를 torch.load 로 불러와서 동작하도록 작성 (Validation set 에 대해서 test 하도록 작성, 제출 후 조교가 Test set 으로 변경하여 성능 측정할 예정)

예시 코드 [test.py]


추가 공지

학습 도중 valid dataloader 를 이용해서 valid 성능을 측정할 때, 기존의 실습 때 사용하였던 아래와 같은 방식은 batch size 가 valid dataset 길이 (7800) 의 약수일 때만 정확합니다.

    print('Accuracy of the last_model network on the {} valid images: {} %'.\
          format(len(valid_loader)*batch_size, 100 * correct / (len(valid_loader)*batch_size)))

Torch dataloader 는 기본적으로 마지막에 남는 데이터를 그대로 전달 (예를 들어 batch size 를 1000 으로 하면 마지막에 800개만 남음.) 하기 때문에, 위와 같은 방식으로 하면 valid accuracy 가 더 낮게 나옵니다.

이 경우에 아래 방식으로 print 를 하면 정확힌 valid accuracy 값을 확인하실 수 있습니다.

 print('Accuracy of the last_model network on the {} valid images: {} %'.\
       format(len(valid_data), 100 * correct / len(valid_data)))

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published