ฟรีซเลเยอร์ของโมเดล
ในแบบฝึกหัดนี้ คุณจะ fine-tune โมเดลสำหรับงานใหม่หลังจากโหลด pre-trained weights เรียบร้อยแล้ว โมเดลประกอบด้วย linear layer สามชั้น อย่างไรก็ตาม เนื่องจากชุดข้อมูลมีขนาดเล็ก จึงต้องการฝึกเฉพาะ linear layer ชั้นสุดท้าย และฟรีซ linear layer สองชั้นแรกเท่านั้น
โมเดลถูกสร้างขึ้นและเก็บไว้ในตัวแปร model แล้ว ให้ใช้เมธอด named_parameters ของโมเดลเพื่อแสดงรายการพารามิเตอร์ทั้งหมด พารามิเตอร์แต่ละตัวจะถูกระบุด้วยชื่อในรูปแบบ x.name โดยที่ x คือดัชนีของเลเยอร์
จำไว้ว่า linear layer แต่ละชั้นมีพารามิเตอร์สองตัว ได้แก่ weight และ bias
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย PyTorch
คำแนะนำการฝึกหัด
- ใช้คำสั่ง
ifเพื่อตรวจสอบว่าพารามิเตอร์นั้นเป็น weight ของเลเยอร์ที่หนึ่งหรือเลเยอร์ที่สองหรือไม่ - ฟรีซ weight ของ linear layer สองชั้นแรกของโมเดล
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
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.____ = ____