Batch Normalization
เพื่อปรับปรุงสถาปัตยกรรมโมเดลขั้นสุดท้าย มาเพิ่ม batch normalization layer หลัง linear layer ทั้งสองชั้นกัน เทคนิค batch norm ช่วยเร่งความเร็วในการ converge ระหว่างการเทรน และป้องกันโมเดลจากปัญหา vanishing และ exploding gradients
torch.nn และ torch.nn.init ถูก import ไว้ให้แล้วในชื่อ nn และ init ตามลำดับ เมื่อปรับแก้สถาปัตยกรรมโมเดลเสร็จแล้ว เตรียมตอบคำถามสั้น ๆ เกี่ยวกับหลักการทำงานของ batch normalization ได้เลย
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class Net(nn.Module):
def __init__(self):
super().__init__()
self.fc1 = nn.Linear(9, 16)
# Add two batch normalization layers
____ = ____
self.fc2 = nn.Linear(16, 8)
____ = ____
self.fc3 = nn.Linear(8, 1)
init.kaiming_uniform_(self.fc1.weight)
init.kaiming_uniform_(self.fc2.weight)
init.kaiming_uniform_(self.fc3.weight, nonlinearity="sigmoid")