L16|Learner 框架與 Callback
打造有彈性的訓練框架 Learner:callback、取消例外、MetricsCB、DeviceCB、context manager,再用 hooks 和激活值直方圖檢查訓練過程。
L16|Learner 框架與 Callback(The Learner framework)
零基礎提示
- 這一課不用額外數學
- Part 2 是大學程度:中三同學先求看懂概念,不用每行程式都會
- 字幕:離線網站選「中英」(電腦翻譯,大意正確)
- 看不懂的詞查 白話小辭典
打造有彈性的訓練框架 Learner:callback、取消例外、MetricsCB、DeviceCB、context manager,再用 hooks 和激活值直方圖檢查訓練過程。 (Build a flexible Learner: callbacks, cancel exceptions, MetricsCB, DeviceCB, context managers, then inspect training with hooks and activation histograms.)
| 項目 | 內容 |
|---|---|
| 所屬 | Part 2:Deep Learning Foundations to Stable Diffusion |
| 影片 | YouTube |
| 對應書本章節 | 無對應章節(Part 2 以 notebook 為主) |
| 原始頁面 | Lessons/lesson16 |
| 難度(F3 視角) | ★★★★★ 大學程度(F3 只求理解概念) |
影片
本課重點
- Callback:在訓練的特定時刻(每個 fit、epoch、batch 的前後)呼叫的函數或類別,讓你不改主程式就能加功能。
- 取消例外:CancelFitException、CancelEpochException、CancelBatchException 讓 callback 可以中途停止訓練、跳過某個 epoch 或 batch。
- 常用 callback:MetricsCB 用 torcheval 計算並印出指標;DeviceCB 把模型和資料搬到正確裝置(GPU)。用 context manager 重構程式,之後加 callback 更容易。
- 看進模型裡面:用 set_seed 固定亂數,故意用很高的學習率 0.6 測試穩定性。
- Hooks 與直方圖:用 PyTorch hooks 收集每一層激活值的平均和標準差,畫成直方圖,看出訓練是否健康(例如激活值大量變成 0)。
關鍵概念
| 英文術語 | 中文 | 一句話解釋 |
|---|---|---|
| Callback | 回呼 | 在特定時機自動被呼叫的程式 |
| Exception | 例外 | 用來中斷正常流程的訊號 |
| Context manager | 情境管理器 | 用 with 語法自動處理開始與結束 |
| Hook | 鉤子 | 掛在層上、在前向或反向時自動執行的函數 |
| Activation statistics | 激活值統計 | 每層輸出的平均與標準差 |
| torcheval | torcheval | PyTorch 的評估指標函式庫 |
認識關聯圖與重點圖
練習題
- 用生活例子解釋 callback。
- 為什麼要觀察每一層激活值的平均和標準差?
- 如果想在驗證準確率達到 95% 時自動停止訓練,可以怎麼用這課的工具?
- 中文學生作答:L16_中文F3學生_202611041526
- English student answers: L16_EN_F3_Student_202611041526
資源連結
英文延伸資源(零基礎可以先略過,點開看)
Lesson resources