打造你自己的手寫數字辨識模型
你來到本課程的最後一個練習——現在你已具備建立能準確辨識手寫數字模型所需的一切!
我們已先替你完成影片中對 MNIST 資料集的基本處理,所以 X 與 y 已載入且可直接拿來建立模型。來自 tensorflow.keras 的 Sequential 與 Dense 也都已預先匯入。
為了增加一點挑戰,我們只載入了 2500 張影像,而不是某些發表結果中看到的 60000 張。深度學習模型通常在資料越多時表現越好,但訓練時間也會更長,特別是當模型變得更複雜時。
如果你的電腦有支援 CUDA 的 GPU,可以善加利用以縮短運算時間。沒有 GPU 也沒問題!你可以在雲端設定深度學習環境,讓你的模型在 GPU 上執行。這裡有 Dan 撰寫的一篇【部落格文章】說明怎麼做(https://www.datacamp.com/community/tutorials/deep-learning-jupyter-aws)——完成本練習後不妨看看!這會是你持續深度學習之旅的絕佳下一步。
想把你的深度學習功力再往上一層嗎?來看看【Advanced Deep Learning with Keras】(https://www.datacamp.com/courses/advanced-deep-learning-with-keras),了解 Keras 的 functional API 如何讓你運用領域知識來解決全新型態的問題。熟悉 functional API 之後,再看看【Image Processing with Keras in Python】(https://www.datacamp.com/courses/image-processing-with-keras-in-python),學習 Keras 在影像領域的實作應用。
本練習屬於課程
Python 深度學習入門
練習說明
- 建立一個
Sequential物件作為模型起點,命名為model。 - 在模型中加入第一個
Dense隱藏層,包含50個單元,啟用函式為'relu'。此資料的input_shape為(784,)。 - 再加入第二個
Dense隱藏層,50個單元,啟用函式為'relu'。 - 加入輸出層。啟用函式使用
'softmax',此層的節點數需與可能的輸出數相同:10。 - 編譯
model,和先前一樣使用'adam'作為optimizer,'categorical_crossentropy'作為 loss,並設定metrics=['accuracy']。 - 使用
X和y來訓練模型,validation_split設為0.3,訓練10個 epochs。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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
____