凍結模型的部分層
你將在載入預先訓練(pre-trained)權重後,針對新的任務進行微調(fine-tune)。這個模型包含 3 個線性層。不過由於你的資料集很小,你只想訓練最後一個線性層,並凍結前兩個線性層。
模型已經建立並存在變數 model 中。你會使用模型的 named_parameters 方法來列出模型的參數。每個參數都有一個名稱。名稱使用以下慣例:x.name,其中 x 是該層的索引。
記得線性層有兩個參數:weight 與 bias。
本練習屬於課程
使用 PyTorch 的深度學習入門
練習說明
- 使用
if敘述判斷某個參數是否為第 1 或第 2 層的 weight。 - 凍結此模型前兩層的 weight。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
for name, param in model.named_parameters():
# Check for first layer's weight
if name == '____':
# Freeze this weight
param.____ = ____
# Check for second layer's weight
if name == '____':
# Freeze this weight
param.____ = ____