이전 단계의 퀴즈는 잘 통과하셨나요? 아래 파일로 퀴즈 정답과 해설을 제공하니 확인하시고 프로젝트를 계속 진행하세요!
패션 분류기 만들기 (Fashion MNIST Classifier)
- [PyTorch] DNN퀴즈정답 PDF
1. 프로젝트 개요
지금까지 배운 내용을 통해 패션 분류기를 만드는 모델을 만들어봅니다.
패션 분류기 만들기 (Fashion MNIST Classifier)
스마트 렌즈는 여러분이 찍은 이미지가 어떤 옷인지 판별하고 쇼핑과 연결지어 검색까지 해줍니다. 이러한 기술은 어떻게 만들어지는 것일까요? 물론 다양한 기술이 들어가겠지만 여기에는 딥러닝 기술이 포함되어 있습니다. 이번 프로젝트에서는 10 종류의 의류와 관련된 이미지를 학습시키고, 판별하는 모델을 만들어 볼 것입니다.
스마트 렌즈 (출처 : 네이버)
프로젝트 목표
이번 프로젝트의 큰 목표는 다음과 같습니다.
- FashinMnist 데이터셋을 활용해 분류기를 학습한다,
- Multi Layer percetron, Batch normalization, ReLU를 활용해 네트워크를 설계한다.
이번 과정을 통해 여러분은 Tensorflow를 이용해 분류기를 학습시키고, 학습된 모델의 성능을 검사하는 절차를 익힐 수 있습니다.
2. 프로젝트 요구사항
최종 결과물
모델에게 패션 이미지를 입력으로 주면, 해당 패션 이미지가 무엇인지를 예측하여 반환합니다.
프로젝트 진행
모든 프로젝트 실습은 첨부되는 Jupyter Notebook 에서 진행되며 차례대로 한 스텝씩 진행하면 됩니다.
프로젝트를 시작하기 위해서 다음 파일을 내려받으시고, Jupyter Notebook을 실행하세요!
! 주의 !
해당 프로젝트의 진행은 꼭 Jupyter Notebook 환경에서만 진행할 수 있습니다.
Jupyter Notebook이 없으시다면, 다음 경로를 통해 프로젝트 실습을 진행하시길 바랍니다.
본 프로젝트는 [Python 3.6], [PyTorch 1.1.0] 버전에서 제작되었습니다.
원활한 실행을 위해 환경을 동일하게 맞춰주시는 것을 권장드립니다.
코드 작성 구간
여러분이 작성할 코드 구간을 "[TODO] 코드 구현" 부분에 명시해두었습니다.
##코드시작## 부터 ##코드종료## 구간에 필요한 코드를 작성해주세요. 나머지 명시되지 않은 구간은 임의로 수정하지 마세요!
- 패션 분류기 만들기 (Fashion MNIST Classifier) ZIP
- 파이토치 DNN 프로젝트 파일입니다. 상단의 <zip> 버튼을 클릭하여 다운로드 하세요!
- [PyTorch] Colab사용자안내 PDF
- Colab 사용자를 위한 튜토리얼입니다.
3. 평가기준표
[Dataset load 및 DataLoader 할당]
- DataLoader
- dataset 인자 : dataset 인자로 기존에 정의한 train_data 및 test_data 변수를 할당한다.
- batch_size 인자 : batch_size 인자로 기존에 정의한 batch_size 변수를 할당한다.
- shuffle 인자 : train_loader의 shuffle 인자는 True, test_loader의 shuffle 인자는 False로 할당한다.
[네트워크 설계]
- FC Layer 설계
- 적절한 입력, 출력 feature 수를 가진 FC Layer를 설계한다.
- 적절한 입력, 출력 feature 수를 가진 FC Layer를 설계한다.
- Batch normalization layer 설계
- 적절한 feature 수를 가진 Batch normalizaion layer를 설계한다.
- 적절한 feature 수를 가진 Batch normalizaion layer를 설계한다.
- ReLU 설계
- ReLU를 Activation function으로 사용한다.
[Loss function 및 Optimizer 정의]
- Cross entropy loss
- Cross entropy loss function을 정의한다.
- Cross entropy loss function을 정의한다.
- Adam
- Adam optimizer를 정의한다.
4. 프로젝트 제출방법
본 프로젝트는 2024년 8월 11일자로 리뷰 제출이 중단되었습니다. 대신 여러분 스스로 체크할 수 있는 함수를 제공하고 있습니다.
체크함수는 최소한의 요구사항만 체크할 뿐, Python 문법 등 모든 오류를 체크해주지 않는 다는 것을 유의해주시길 바랍니다.
로컬 환경 실행자
- 모든 실습 완료 후, Jupyter Notebook 을 Ctrl+S 혹은 File > Save and checkpoint 로 저장합니다.
- 제일 하단의 코드를 실행합니다. 여기서 주의할 점은 Jupyter Notebook 의 파일 이름을 수정하시면 안됩니다!
만약에 노트북 이름을 수정했다면 "tensorflow-dnn-project" 로 바꿔주시길 바랍니다. - 모든 평가 기준을 통과하면, 함수 실행 후 프로젝트 "submit" 디렉토리와 압축된 "submit.zip"이 생깁니다.
"dnn_submission.tsv" 파일을 열고 모든 루브릭을 PASS 했는지 확인해보세요!- "dnn_submission.tsv" : 평가기준표에 근거해 각 세부항목의 통과여부(PASS/FAIL)를 확인하는 파일
- "dnn_submission.html" : 여러분이 작성한 Jupyter Notebook 을 html 형식으로 전환한 파일
import check_util.submit as submit
submit.process_submit()
Colab 환경 실행자
- 모든 실습 완료 후, Jupyter Notebook 을 Ctrl+S 으로 저장합니다.
- 제일 하단의 코드를 실행합니다. 코드 실행결과 안내에 따라서 코드를 수정하거나 다음 스텝으로 넘어갑니다.
- 모든 평가 기준을 통과하면, 함수 실행 후 프로젝트 "submit" 디렉토리와 압축된 "dnn_submission.tsv"만 생깁니다.
"dnn_submission.tsv" 파일을 열고 모든 루브릭을 PASS 했는지 확인해보세요!- "dnn_submission.tsv" : 평가기준표에 근거해 각 세부항목의 통과여부(PASS/FAIL)를 확인하는 파일
- "dnn_submission.tsv" : 평가기준표에 근거해 각 세부항목의 통과여부(PASS/FAIL)를 확인하는 파일
import check_util.submit as submit
submit.process_submit()
※ 동료 학습자의 원활한 학습을 위해 프로젝트 관련 소스코드 유출(SNS, Gitlab, Github)을 엄격히 금지합니다.
※ 개발환경의 버전을 맞추는 일은 서버 오류 등의 이슈를 방지할 수 있어 매우 중요합니다. 반드시 권장 버전으로 설치해 주세요.
※ 부스트코스의 프로젝트는 순차적으로 학습하도록 구성되어 있습니다. 프로젝트 진행에 참고 부탁드립니다.