深度學習hello world手寫數字識別_第1頁
深度學習hello world手寫數字識別_第2頁
深度學習hello world手寫數字識別_第3頁
深度學習hello world手寫數字識別_第4頁
深度學習hello world手寫數字識別_第5頁
已閱讀5頁,還剩16頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

任務介紹深度學習的“ o

World”——手寫數字識別手寫識別屬于典型的圖像多分類問題實踐平

度AI實訓平臺-AIStudio模型選擇全連接網絡(Fully

connected

network)數據集MINST數據集Paddlepaddle中提供自動加載MINST數據的模塊paddle.dataset.mnist訓練集:paddle.dataset.mnist.train()測試集:paddle.dataset.mnist.test()實踐流程實踐流程準備數據配置網絡定義網絡定義損失函數定義優化算法訓練網絡模型評估模型根據損失函數進行反向誤差

,將網絡誤差從輸出層依次向前傳遞,并更新網絡中的參數。重復1~2步驟,直至網絡訓練誤差達到規定的程度或訓練輪次達到設定值。訓練網絡定義好模型結構之后,

要通過以下幾個步驟進行模型訓練。1. 網絡正向 計算網絡輸出和損失函數。準備數據配置網絡訓練網絡模型評估模型準備數據導入必要的包準備數據配置網絡訓練網絡模型評估模型paddle.fluid-→

PaddlePaddle深度學習框架numpy------→

python基本庫,用于科學計算PIL----------→

python第

圖像處理庫Matplotlib--→

python的繪圖庫pyplot:matplotlib的繪圖框架os----------→

python的模塊,可使用該模塊對操作系統進行操作準備數據paddle.dataset.mnist.train()表示獲取mnist的訓練集paddle.reader.shuffle()表示每次緩存BUF_SIZE個數據項,并進行打亂paddle.batch()表示按批次

亂序后的數據,批次大小為BATCH_SIZE訓練數據集準備準備數據配置網絡訓練網絡模型評估模型準備數據paddle.dataset.mnist.test()表示獲取mnist的測試集paddle.reader.shuffle()表示每次緩存BUF_SIZE個數據項,并進行打亂paddle.batch()表示按批次

亂序后的數據,批次大小為BATCH_SIZE測試數據集準備準備數據配置網絡訓練網絡模型評估模型配置網絡定義網絡定義一個三層感知器,感知器的結構是:輸入層-->>隱層-->>隱層-->>輸出層。兩個大小為100的隱層和一個大小為10的輸出層,輸出層的激活函數是Softmax。準備數據配置網絡訓練網絡模型評估模型配置網絡定義數據層準備數據配置網絡訓練網絡模型評估模型fluid.layers.data():配置數據層張量image:因為是灰度圖像,單通道,故形狀為[1,28,28],數據類型為float32張量label:代表圖像分類后的類別,形狀為[1],數據類型為int64獲取分類器配置網絡定義損失函數準備數據配置網絡訓練網絡模型評估模型交叉熵損失函數在分類任務上比較常用。定義了一個損失函數之后,還要對它求平均值,因為定義的是一個Batch的損失值。同時 還可以定義一個準確率函數,這個可以在 訓練的時候輸出分類的準確率。配置網絡定義優化算法Adam優化器實現簡單,計算高效,對內存需求少;參數的更新不受梯度的伸縮變換影響;更新的步長能夠被限制在大致的范圍內等等。Adam具有以上一些優勢,在很多情況下默認為性能比較優秀的優化器準備數據配置網絡訓練網絡模型評估模型配置網絡上述模型配置完畢后,得到兩個fluid.Programfluid.default_startup_program()

:參數初始化操作會被寫入fluid.default_startup_program()fluid.default_main_program():用于獲取默認或全局main

program(主程序)。該主程序用于訓練和測試模型。fluid.layers中的所有layer函數可以向default_main_program中添加算子和變量。是Fluid許多編程接口的缺省值。準備數據配置網絡訓練網絡模型評估模型訓練網絡創建訓練用Executor準備數據配置網絡訓練網絡模型評估模型定義數據

器定義運算場所,fluid.CPUPlace()和fluid.CUDAPlace(0)分別表示運算場所為CPU和GPU創建一個Executor實例Executor接收傳入的Program,并通過run()方法運行program訓練網絡開始訓練對于train_reader中的每次batch,執行exe.run()運行執行器開始訓練。喂入每個batch的訓練數據,fetch損失值、準確率。每100個batch打印一次損失值和準確率。準備數據配置網絡訓練網絡模型評估模型訓練網絡開始測試對于test_reader中的每次batch,執行exe.run()運行執行器開始測試。喂入每個batch的訓練數據,fetch損失值、準確率。計算每輪所有batch的誤差平均值、誤差準確率,然后輸出。準備數據配置網絡訓練網絡模型評估模型訓練網絡保存模型第一個參數:dirname

(str)–保存推理model的路徑第二個參數:feeded_var_names

(list[str])

–推理(inference)需要feed

的數據第三個參數:

_vars

(list[Variable])

保存推理(inference)結果的

Variables第四個參數:executor

(Executor)

executor

保存inference

model準備數據配置網絡訓練網絡模型評估模型save_inference_model()構建一個專門用于推的

Program,然后executor

把它和所有相關參數保存到

dirname

中模型評估觀察訓練過程中間結果如下:觀察到模型的誤差相對較低,而準確率較高,接下來可以使用該模型進行

。準備數據配置網絡訓練網絡模型評估模型模型預處理首先進行灰度化,將RGB轉化為灰度圖像,L代表灰度圖像,像素值在0~255之間然后壓縮圖像大小為28*28,與訓練集相同接著將圖像轉換成一維向量最后再對一維向量進行歸一化處理,【-1~1】之間準備數據配置網絡訓練網絡模型評估模型模型準備數據配置網絡訓練網絡模型評估模型模型load_inference_model()這個函數的返回有三個元素的元組Program

是一個Program

,它是推理Program。feed_fe

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論