การใช้งานโมเดลที่ผ่านการเทรนแล้ว

Deep Learning สำหรับภาพด้วย PyTorch

Michal Oleszak

Machine Learning Engineer

การใช้ประโยชน์จาก pre-trained models

  • การเทรนโมเดลตั้งแต่เริ่มต้น:

    • ใช้เวลานาน
    • ต้องการข้อมูลจำนวนมาก
  • Pre-trained models - โมเดลที่เทรนบนงานหนึ่งแล้ว

    • นำไปใช้กับงานใหม่ได้ทันที
    • ต้องปรับให้เข้ากับงานใหม่ (transfer learning)
  • ขั้นตอนการใช้ pre-trained models:

    • การบันทึกและโหลดโมเดลในเครื่อง
    • การดาวน์โหลดโมเดลจาก torchvision
Deep Learning สำหรับภาพด้วย PyTorch

การบันทึกโมเดล PyTorch

  • torch.save()
  • นามสกุลไฟล์โมเดล: .pt หรือ .pth
  • บันทึก weights ด้วย .state_dict()
    torch.save(model.state_dict(), "BinaryCNN.pth")
    
Deep Learning สำหรับภาพด้วย PyTorch

การโหลดโมเดล PyTorch

  • สร้าง instance โมเดลใหม่

    new_model = BinaryCNN()
    
  • โหลด parameters ที่บันทึกไว้

    new_model.load_state_dict(torch.load('BinaryCNN.pth'))
    
Deep Learning สำหรับภาพด้วย PyTorch

การดาวน์โหลดโมเดล torchvision

from torchvision.models import (
    resnet18, ResNet18_Weights
)


weights = ResNet18_Weights.DEFAULT
model = resnet18(weights=weights)
transforms = weights.transforms()
  • นำเข้าสถาปัตยกรรม resnet และ weights
  • ดึง weights ออกมา
  • สร้าง instance โมเดลพร้อมส่ง weights
  • เก็บ data transforms ที่จำเป็น
Deep Learning สำหรับภาพด้วย PyTorch

เตรียมภาพ input ใหม่

from PIL import Image

image = Image.open("cat013.jpg")

image_tensor = transform(image)
image_reshaped = image_tensors.unsqueeze(0)

 

ภาพแมว

  • โหลดภาพ
  • แปลงภาพ
  • ปรับรูปร่างภาพ
Deep Learning สำหรับภาพด้วย PyTorch

การสร้างการพยากรณ์ใหม่

model.eval()


with torch.no_grad():
pred = model(image_reshaped).squeeze(0)
pred_cls = pred.softmax(0)
cls_id = pred_cls.argmax().item()
cls_name = weights.meta["categories"][cls_id]
print(cls_name)
Egyptian cat
  • เปิดโหมด evaluation สำหรับ inference
  • ปิดการคำนวณ gradient
  • ส่งภาพเข้าโมเดลและลบมิติ batch ออก
  • ใช้งาน softmax
  • เลือกคลาสที่มีความน่าจะเป็นสูงสุดและดึง index
  • แมป index ของคลาสไปยัง label
  • แสดง label ของคลาส
Deep Learning สำหรับภาพด้วย PyTorch

มาฝึกกันเถอะ!

Deep Learning สำหรับภาพด้วย PyTorch

Preparing Video For Download...