佇遮, 咱欲結合學著 ê 神經網路智識, 來認捌前一篇所介紹 ê MNIST 資料集.
一个完整 ê 神經網路智識, 愛有 "學習" 佮 "推論" 兩个階段, 就敢若咱人若是欲會曉一種技術, 嘛是愛先學習, 出師了後, 才開始展工夫. 毋過, 這篇, 干焦有展工夫予你看. 這个神經網路已經訓練好阿. 原作者佇遮, 想欲展示予咱看會是: 咱進前介紹 ê 三棧神經網路, 予伊有夠濟个神經元, 用咱學過 ê Mé-thuì Dot 運算, 閣有定義好个戛火函數, 伊是有法度認捌 MNIST 內底ê資料集--ê.
Python Pickle 功能 ê 介紹
Pickle 是 Python ê module, 若是看伊英文說明: "The
咱來做一个比喻: 物件 (object) 你會當想做一个立體, 有佔著空間 ê 物件, 親像棉襀被, 椅仔, .... 若是有一个奇術師, 有一條長長 ê 水管, 伊會當 kā 棉襀被硩扁, 縮小, uì 水管頭櫼入去. 紲落來, 嘛 kā 椅仔櫼入去, 紲落來啥乜 li-li-khok-khok 攏照順序櫼入去....
按呢, 立體 ê 物件變做無維度 (dimension) 抑就是無結構 (structure), 敢若親像水佇水管裡排隊, 這就是資料水 (serial data stream).
pickle
module implements binary protocols for serializing and de-serializing a Python object structure.", 伊是 kā Python ê 物件 (object) 成做二元 ê 資料水(註1, 看下跤) (serial data stream). 按呢抑是誠抽象.咱來做一个比喻: 物件 (object) 你會當想做一个立體, 有佔著空間 ê 物件, 親像棉襀被, 椅仔, .... 若是有一个奇術師, 有一條長長 ê 水管, 伊會當 kā 棉襀被硩扁, 縮小, uì 水管頭櫼入去. 紲落來, 嘛 kā 椅仔櫼入去, 紲落來啥乜 li-li-khok-khok 攏照順序櫼入去....
按呢, 立體 ê 物件變做無維度 (dimension) 抑就是無結構 (structure), 敢若親像水佇水管裡排隊, 這就是資料水 (serial data stream).
會使變做資料水, 當然嘛愛會使變轉來, 若無這个魔術師就失業囉! 變做資料水 ê 過程號做 serializing, 變轉來 ê 過程號做 de-serializing.
講到遮你若是閣霧嗄嗄嘛bua̋i 緊. Pickle ê 意思是 "泡菜/醬菜/豉ê物", 就是會使囥真久袂歹去. 所以 Pickle 就會使予咱用內囥一寡咱做到一半 ê 資料, 先儉起來, 欲食才提出來.
咱進前講个, 這个神經網路, 已經訓練好阿, 作者就先用 Pickle ê 形式儉起來, 咱就 kā 豉好个"泡菜" 提出來食就好阿.
MNIST ê 推論網路
get_data() 佇前一篇介紹, 就是去 kā MNIST 捎--入來.
init_network() 就是 kā 咱事先做好个神經網路, 囥佇 ch03/sample_weight.pkl 掠轉來.
predict() 伊个樣都和咱佇 Python 實作 3 棧 ê 神經網路 ê 樣欲相sia̋ng 阿相 siâng. 你看伊嘛是三棧 ê 網路 毋過, 伊 ê 輸入有 784 ê 神經元, 輸出有 10 ê 神經元. 中方藏兩棧, 這隱藏 ê 頭一棧是 50 个神經元, 第二棧是 100 个神經元.
這个 for loop, kā 測試 ê 資料用 predict() 來臆, 咱个 10 ê 輸出神經元, 對應到 0~9 十 ê 數字, 佗一个 ê 機率上大, 就是伊--阿. 才閣和答案 t[i] 比看著抑是毋著
這是佇我的電腦ê運行結果:
佮書上仝款. 0.9352 就是正確率 93.52%.
電腦就是電腦, 訓練煞就袂改變. 咱人有可能彼工心情無好結果會變無仝.
電腦就是電腦, 訓練煞就袂改變. 咱人有可能彼工心情無好結果會變無仝.
你看, 生做攏仝款 ê 神經元, 經過訓練, 就會認 0~9 ê 圖片. 訓練是改變啥物咧? 就是神經網路 ê 權重 W, 佇遮是 W1, W2, W3. 欲按怎調整 W1, W2, W3? 這就是神經網路 ê 手路, 咱就愛繼續看落去!
註1: 定定聽序大人講 "錢水活", 表示華語講个 "金流很大". "水" 這个字佇台語, 本底就有 "流" ê 意思. 和英文 ê flow/stream, ê 意思嘛真合. 當然, 你欲添一 ê "流" 也是會使啦!
註1: 定定聽序大人講 "錢水活", 表示華語講个 "金流很大". "水" 這个字佇台語, 本底就有 "流" ê 意思. 和英文 ê flow/stream, ê 意思嘛真合. 當然, 你欲添一 ê "流" 也是會使啦!
沒有留言:
張貼留言