나만의 숫자 인식 모델 만들기
이 강의의 마지막 연습 문제에 도달하셨습니다. 이제 손글씨 숫자를 정확히 인식하는 모델을 만들기 위한 모든 것을 익히셨어요!
영상에서 보신 MNIST 데이터셋의 기본 전처리는 이미 완료되어 있으므로, 모델링에 바로 사용할 수 있는 X와 y가 준비되어 있습니다. 또한 tensorflow.keras의 Sequential과 Dense도 미리 임포트되어 있어요.
추가 도전 과제로, 공개된 결과에서 자주 보이는 60000장이 아닌 2500장만 로드해 두었습니다. Deep learning 모델은 데이터가 많을수록 보통 더 잘 동작하지만, 특히 모델이 복잡해질수록 학습 시간이 더 오래 걸립니다.
CUDA 호환 GPU가 있는 컴퓨터가 있다면 이를 활용해 연산 시간을 줄일 수 있습니다. GPU가 없더라도 걱정하지 마세요! 클라우드에서 GPU로 모델을 실행할 수 있는 deep learning 환경을 구성할 수 있습니다. 이 방법을 설명한 Dan의 블로그 글이 있으니, 이 연습 문제를 마치고 나서 살펴보세요! deep learning을 계속 학습하는 데 아주 좋은 다음 단계가 될 거예요.
deep learning을 한 단계 더 발전시키고 싶으신가요? Keras의 functional API로 새로운 유형의 문제를 해결하기 위해 도메인 지식을 모델에 반영하는 방법을 다루는 Advanced Deep Learning with Keras를 확인해 보세요. functional API 사용법을 익힌 뒤에는, Keras의 이미지 특화 활용을 배우는 Image Processing with Keras in Python도 살펴보시기 바랍니다.
이 연습은 강의의 일부입니다
Python으로 시작하는 Deep Learning
연습 안내
- 모델을 시작하기 위해
Sequential객체를 만들고 이름을model로 하세요. - 첫 번째 은닉
Dense레이어(유닛50)를'relu'활성화 함수와 함께 추가하세요. 이 데이터의input_shape는(784,)입니다. - 두 번째 은닉
Dense레이어를 유닛50, 활성화 함수'relu'로 추가하세요. - 출력 레이어를 추가하세요. 활성화 함수는
'softmax'이고, 이 경우 가능한 출력의 개수와 같은10개의 노드를 사용합니다. - 이전과 같이
model을 컴파일하세요.optimizer는'adam', 손실 함수는'categorical_crossentropy',metrics=['accuracy']를 사용합니다. X와y로 모델을 학습하고,validation_split은0.3,epochs는10으로 설정하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# Create the model: model
model = ____
# Add the first hidden layer
____
# Add the second hidden layer
____
# Add the output layer
____
# Compile the model
____
# Fit the model
____