การฝึก Image Classifier

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

Michal Oleszak

Machine Learning Engineer

Data Augmentation ทบทวนใหม่

ภาพแมว

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

Data Augmentation ทบทวนใหม่

ภาพแมวที่พลิกในแนวนอนและหมุน

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

สิ่งที่ไม่ควร Augment

มะนาวสีเหลืองและมะนาวแป้นสีเขียวที่มีลักษณะเหมือนกัน แตกต่างกันเพียงสี

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

สิ่งที่ไม่ควร Augment

มะนาวสีเหลืองและมะนาวแป้นสีเขียวที่มีลักษณะเหมือนกัน แตกต่างกันเพียงสี

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

สิ่งที่ไม่ควร Augment

ตัวอักษร "W" เมื่อพลิกในแนวตั้งจะกลายเป็นตัวอักษร "M"

  • Augmentation อาจส่งผลต่อ Label
  • ว่าจะสร้างความสับสนหรือไม่นั้นขึ้นอยู่กับงานที่ทำ
  • เลือก Augmentation โดยคำนึงถึงข้อมูลและงานเสมอ!
Deep Learning ระดับกลางด้วย PyTorch

Augmentation สำหรับการจำแนกประเภทเมฆ

ตัวอย่างรูปภาพเมฆ

  • Random rotation: ให้โมเดลเรียนรู้มุมมองการก่อตัวของเมฆที่หลากหลาย
  • Horizontal flip: จำลองมุมมองท้องฟ้าที่แตกต่างกัน
  • Auto contrast adjustment: จำลองสภาพแสงที่แตกต่างกัน
train_transforms = transforms.Compose([
    transforms.RandomHorizontalFlip(),
    transforms.RandomRotation(45),
    transforms.RandomAutocontrast(),
    transforms.ToTensor(),
    transforms.Resize((128, 128))
])
Deep Learning ระดับกลางด้วย PyTorch

Cross-Entropy Loss

  • Binary classification: Binary cross-entropy (BCE) loss
  • Multi-class classification: Cross-entropy loss
  • criterion = nn.CrossEntropyLoss()
Deep Learning ระดับกลางด้วย PyTorch

Training Loop ของ Image Classifier

net = Net(num_classes=7)

criterion = nn.CrossEntropyLoss()
optimizer = optim.Adam(net.parameters(), lr=0.001)


for epoch in range(10): for images, labels in dataloader_train: optimizer.zero_grad() outputs = net(images) loss = criterion(outputs, labels) loss.backward() optimizer.step()
Deep Learning ระดับกลางด้วย PyTorch

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

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

Preparing Video For Download...