L02|中文 F3 學生的學習紀錄

角色設定:我是中三學生,只看得懂中文。Python 學過變數、for 迴圈和 list,數學讀到一元二次方程。我靠中文課程筆記、YouTube 自動翻譯字幕和查字典來學。Kaggle 筆記本的操作步驟,是依官方 notebook 流程寫下的練習紀錄。

我讀懂了什麼(用自己的話)

  • 模型訓練好只是一半,要讓別人用得到才有價值,這就是部署。
  • Hugging Face Spaces 像是免費的網站空間,Gradio 幫我做出上傳圖片的按鈕和結果顯示。
  • 混淆矩陣是一個表格,對角線是答對的,對角線以外就是搞混的地方。
  • 資料增強就是把同一張圖隨機裁切、翻轉,讓模型以為看到新圖。
  • 模型可以存成一個 .pkl 檔,帶著走、在別的電腦載入使用。

我卡住的地方,和我怎麼解決

卡住的地方我怎麼解決
git、push、clone 這些指令完全沒聽過請哥哥示範,也查了中文教學;後來改用 GitHub Desktop 介面操作,比較不會打錯指令。
app.py 跑起來說找不到 model.pkl發現是模型檔放錯資料夾,要放在 Space 資料夾的最外層,和 app.py 同一層。
不懂為什麼要 squish 而不是 crop比較兩種結果:crop 會把熊的頭切掉,squish 雖然有點變形但整隻熊都在。

練習作答

Q1. 為什麼課程建議「先訓練模型,再清理資料」?這和一般直覺有什麼不同?

因為人眼很難一張張檢查幾百張圖,但模型訓練完,會把它最沒把握或錯得最離譜的圖片排出來給我看,我只要檢查那幾張就好。一般人以為要先把資料弄乾淨才能開始,其實先訓練反而更快找到問題。

Q2. 資料增強(data augmentation)是什麼?為什麼用了之後要多訓練幾個 epoch?

資料增強是把圖片做隨機變化(裁切、翻轉、旋轉、調亮度),讓模型每次看到的圖都有點不一樣,比較不會死記。因為每一輪看到的版本都不同,模型需要更多輪才能把這些變化都學起來。

Q3. 下面是一個熊分類器的混淆矩陣:真實灰熊 50 張中有 45 張判對、5 張判成黑熊;真實黑熊 48 張中有 46 張判對、2 張判成灰熊;泰迪熊全對。模型最大的問題是什麼?

最大問題是灰熊和黑熊會搞混,尤其是灰熊被判成黑熊(5 張)比反過來(2 張)多。泰迪熊沒問題。可能是有些灰熊照片顏色很深,看起來像黑熊,可以用 plot_top_losses 看那幾張圖。

Q4. 列出把模型部署到 Hugging Face Spaces 的主要步驟(至少五步)。

① 在 Kaggle 訓練好模型並用 learn.export 匯出 model.pkl。② 下載 model.pkl。③ 在 huggingface.co/spaces 建立新 Space(選 Gradio)。④ 用 git clone 把 Space 資料夾下載到電腦。⑤ 寫 app.py:load_learner 載入模型、寫預測函數、建立 gr.Interface。⑥ 把 app.py、model.pkl、requirements.txt 放進資料夾。⑦ git push 上傳,等網站建好就能用。

Q5. 設計一個你自己的部署專案:要分辨什麼?誰會用?Gradio 介面的輸入和輸出是什麼?

我想做「校服違規檢查」太敏感了,改做「羽毛球拍還是網球拍」分類器,給剛入門的同學用。輸入:一張球拍照片。輸出:羽毛球拍、網球拍、壁球拍三個類別的機率。

我的卡片盒筆記

卡片|模型要讓別人用得到,才算真的完成

訓練出準確的模型只走了一半,部署讓它變成別人能用的東西。這課最讓我有感的是,幾十行程式就能把我的模型變成一個網址,傳給同學就能用。

我以前做的電腦作業都只存在自己的檔案夾,交完就沒人看。這次我把球拍分類器放上 Hugging Face Spaces,傳連結給羽毛球隊的學弟,他們拿自己的球拍拍照測試,還找出模型把壁球拍誤判成網球拍的問題。因為有真實使用者,我才知道資料裡壁球拍的照片太少。不過部署也有成本,要處理 git、檔案位置、套件版本,第一次花的時間比訓練還多。那次經驗也讓我明白,模型準不準,最後是由真正使用它的人說了算。

下週我要做的小行動:補收集 50 張壁球拍照片,重新訓練後更新 Space,再請三位學弟測試。

🔗 推薦產生關聯的筆記: → 專案管理類:「真實使用者的回饋比自己測試更準」 → 技術類:「版本控制讓你敢放心改程式」 → 資料類:「少數類別的資料不夠,模型就會偏心」


回到課程筆記:L02_模型部署_202611041526

Built with LogoFlowershow