ชุดข้อมูลสองอินพุต
การสร้างโมเดลแบบหลายอินพุตเริ่มต้นด้วยการสร้างชุดข้อมูล (dataset) แบบกำหนดเองที่สามารถส่งอินพุตทั้งหมดให้กับโมเดลได้ ในแบบฝึกหัดนี้ คุณจะสร้างชุดข้อมูล Omniglot ที่ให้ข้อมูลเป็นชุดสามองค์ประกอบ (triplet) ประกอบด้วย:
- ภาพของตัวอักษรที่ต้องการจำแนกประเภท
- เวกเตอร์ตัวอักษร (alphabet vector) แบบ one-hot encoding ที่มีความยาว 30 โดยค่าทุกตำแหน่งเป็น 0 ยกเว้นตำแหน่งเดียวที่เป็น 1 ซึ่งบ่งชี้ ID ของชุดตัวอักษรที่ตัวอักษรนั้นมาจาก
- ป้ายกำกับเป้าหมาย (target label) ซึ่งเป็นจำนวนเต็มระหว่าง 0 ถึง 963
มี samples ให้แล้ว ซึ่งเป็นลิสต์ของ 3-tuple แต่ละรายการประกอบด้วย path ของไฟล์ภาพ เวกเตอร์ตัวอักษร และป้ายกำกับเป้าหมาย นอกจากนี้ได้ import ไลบรารีต่อไปนี้ไว้ให้แล้ว มาเริ่มกันเลย!
from PIL import Image
from torch.utils.data import DataLoader, Dataset
from torchvision import transforms
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning ระดับกลางด้วย PyTorch
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
class OmniglotDataset(Dataset):
def __init__(self, transform, samples):
# Assign transform and samples to class attributes
____ = ____
____ = ____