โมเดล Binary Classification
ในฐานะผู้ปฏิบัติงานด้าน deep learning งานหลักอย่างหนึ่งคือการฝึกโมเดลสำหรับการจำแนกภาพ หนึ่งในรูปแบบที่พบบ่อยคือ binary classification ซึ่งต้องแยกแยะภาพออกเป็น 2 คลาส เพื่อให้กระบวนการทำงานมีประสิทธิภาพและนำกลับมาใช้ซ้ำได้ คุณจึงตัดสินใจสร้างเทมเพลตสำหรับโมเดล CNN แบบ binary image classification เพื่อนำไปใช้กับโปรเจกต์ในอนาคต
ได้นำเข้าแพ็กเกจ torch และ torch.nn ในชื่อ nn เรียบร้อยแล้ว ภาพทุกภาพมีขนาด 64x64 พิกเซล
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning สำหรับภาพด้วย PyTorch
คำแนะนำการฝึกหัด
- สร้าง convolutional layer โดยกำหนด input channel เป็น 3, output channel เป็น 16, kernel size เป็น 3, stride เป็น 1 และ padding เป็น 1
- สร้าง fully connected layer โดยกำหนด input size เป็น 16x32x32 และจำนวนคลาสเป็น 1 โดยระบุค่าตามลำดับที่กำหนดไว้
(16*32*32, 1) - สร้างฟังก์ชัน activation แบบ
sigmoid
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class BinaryImageClassifier(nn.Module):
def __init__(self):
super(BinaryImageClassifier, self).__init__()
# Create a convolutional layer
self.conv1 = ____(____)
self.relu = nn.ReLU()
self.maxpool = nn.MaxPool2d(kernel_size=2, stride=2)
self.flatten = nn.Flatten()
# Create a fully connected layer
self.fc = ____(____)
# Create an activation function
self.sigmoid = ____