paddlepaddle學習筆記(二)———手寫數字識別

1. 基於縱向+橫向的基本框架算法

 

 

 縱向爲訓練模型的通常步驟,橫向爲每一部分設計合適的方案,使得學習者更好的掌握深度學習的理論知識。網絡

2. 模型實現框架

 讀取數據:paddle.dataset.mnist.train()學習

 模型設計:模型的輸入爲784維(28*28)數據,輸出爲1維數據,如 下圖 所示。測試

  輸入像素的位置排布信息對理解圖像內容很是重要(如將原始尺寸爲28*28圖像的像素按照7*112的尺寸排布,那麼其中的數字將不可識別),所以網絡的輸入設計爲28*28的尺寸,而不是1*784,以便於模型可以正確處理像素之間的空間信息。優化

訓練配置:訓練配置須要先生成模型實例(設爲「訓練」狀態),再設置優化算法和學習率(使用隨機梯度降低SGD,學習率設置爲0.001)設計

 

訓練過程:訓練過程採用二層循環嵌套方式,訓練完成後須要保存模型參數,以便後續使用。blog

  • 內層循環:負責整個數據集的一次遍歷,遍歷數據集採用分批次(batch)方式。
  • 外層循環:定義遍歷數據集的次數,本次訓練中外層循環10次,經過參數EPOCH_NUM設置。

模型測試: 模型測試的主要目的是驗證訓練好的模型是否能正確識別出數字,包括以下四步:圖片

  • 聲明實例
  • 加載模型:加載訓練過程當中保存的模型參數。
  • 灌入數據:將測試樣本傳入模型,模型的狀態設置爲校驗狀態(eval),顯式告訴框架咱們接下來只會使用前向計算的流程,不會計算梯度和梯度反向傳播。
  • 獲取預測結果,取整後做爲預測標籤輸出。

在模型測試以前,須要先從'./work/example_0.jpg'文件中讀取樣例圖片,並進行歸一化處理。深度學習

相關文章
相關標籤/搜索