เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

ลูปการฝึก Image Classifier

ถึงเวลาฝึก image classifier แล้ว! จะใช้ Net ที่กำหนดไว้ก่อนหน้านี้เพื่อฝึกให้โมเดลแยกแยะระหว่างประเภทเมฆ 7 ประเภท

ในการกำหนด loss และ optimizer ให้ใช้ฟังก์ชันจาก torch.nn และ torch.optim ซึ่ง import ให้แล้วในชื่อ nn และ optim ตามลำดับ ไม่จำเป็นต้องแก้ไขส่วนใดใน training loop เลย เพราะมีโครงสร้างเหมือนกับที่เขียนไว้ก่อนหน้า โดยเพิ่มโค้ดสำหรับแสดงค่า loss ระหว่างการฝึกเข้ามาด้วย

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

Deep Learning ระดับกลางด้วย PyTorch

ดูคอร์ส

คำแนะนำการฝึกหัด

  • กำหนดโมเดลโดยใช้คลาส Net โดยตั้งค่า num_classes เป็น 7 แล้วกำหนดให้กับตัวแปร net
  • กำหนด loss function เป็น cross-entropy loss แล้วกำหนดให้กับตัวแปร criterion
  • กำหนด optimizer เป็น Adam โดยส่งพารามิเตอร์ของโมเดลและ learning rate เป็น 0.001 แล้วกำหนดให้กับตัวแปร optimizer
  • เริ่ม for-loop การฝึกโดย iterate ผ่าน images และ labels ของ dataloader_train

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Define the model
____ = ____
# Define the loss function
____ = ____
# Define the optimizer
____ = ____

for epoch in range(3):
    running_loss = 0.0
    # Iterate over training batches
    ____
        optimizer.zero_grad()
        outputs = net(images)
        loss = criterion(outputs, labels)
        loss.backward()
        optimizer.step()
        running_loss += loss.item()
    
    epoch_loss = running_loss / len(dataloader_train)
    print(f"Epoch {epoch+1}, Loss: {epoch_loss:.4f}")
แก้ไขและรันโค้ด