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

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

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

  • Callback 像是在訓練流程上預留插座,想加功能就插上去。
  • 可以用例外(exception)在需要時提早結束訓練。
  • Hooks 讓我偷看每一層算出來的數字。
  • 畫出激活值的分布,可以看出模型是不是「壞掉」了。

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

卡住的地方我怎麼解決
callback 的流程很繞畫了一張時間軸:before_fit → before_epoch → before_batch → after_batch → after_epoch → after_fit,標出每個 callback 在哪裡被叫。
with 語法以前只用在開檔案知道 with 會自動做「開始」和「結束」的動作,所以適合包住 fit 的前後處理。

練習作答

Q1. 用生活例子解釋 callback。

像是設定鬧鐘:上課流程照常進行,但到了指定時間鬧鐘會自動響。callback 就是在訓練到某個時刻時自動執行的程式。

Q2. 為什麼要觀察每一層激活值的平均和標準差?

如果平均或標準差變得太大或接近 0,代表訊號在網路裡爆掉或消失,模型學不好。看這些數字可以早點發現問題,不用等訓練完才知道失敗。

Q3. 如果想在驗證準確率達到 95% 時自動停止訓練,可以怎麼用這課的工具?

寫一個 callback,在 after_epoch 時檢查驗證準確率,如果 ≥ 95% 就 raise CancelFitException,Learner 收到後就會停止整個訓練。

我的卡片盒筆記

卡片|好的流程會預留插座,讓功能可以隨時加上去

Learner 的設計重點是 callback:主要的訓練流程不變,但在每個階段的前後預留插座,想記錄指標、換裝置、提早停止,都寫成 callback 插上去。主程式保持簡單,功能卻可以一直擴充。

我們羽毛球隊的訓練課也是這樣安排。熱身、步法、技術、對打、伸展的順序每次都一樣,但教練會在步法之後插入不同的專項練習,比賽前插入模擬賽,受傷的隊員插入復健動作。基本流程不動,內容可以彈性調整。不過我覺得插座太多也會讓人搞不清楚到底什麼時候會執行什麼,所以文件和命名很重要。隊員都知道下一步大概會做什麼,教練加入新練習時,也不會打亂整堂課的節奏。

這週我要做的小行動:在自己的訓練迴圈加一個「每個 epoch 印出損失」的 callback 函數。

🔗 推薦產生關聯的筆記: → 系統設計類:「主流程穩定,擴充靠插件」 → 運動訓練類:「固定框架加上彈性模組」 → 除錯類:「看中間數字比看最後結果更早發現問題」


回到課程筆記:L16_Learner框架_202611041526

Built with LogoFlowershow