การสร้าง label แบบ one-hot encoding
One-hot encoding จะแปลง label ที่เป็นจำนวนเต็มให้กลายเป็นเวกเตอร์ที่มี N องค์ประกอบ โดย N คือจำนวน class เวกเตอร์นี้จะมีค่าเป็น 0 ทั้งหมด ยกเว้นตำแหน่งที่ถูกต้องซึ่งจะมีค่าเป็น 1
ในแบบฝึกหัดนี้ จะได้ลองสร้างเวกเตอร์ one-hot encoded สำหรับ y ด้วยตนเองก่อน แล้วจึงใช้ PyTorch เพื่อให้กระบวนการนี้ง่ายขึ้น ชุดข้อมูลมีทั้งหมด 3 class (0, 1, 2)
มีการ import numpy (np), torch.nn.functional (F), และ torch ไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย PyTorch
คำแนะนำการฝึกหัด
- ทำ one-hot encoding กับ label จริง
yด้วยตนเองโดยใช้ NumPy array ที่เตรียมไว้ แล้วบันทึกผลลัพธ์เป็นone_hot_numpy - ใช้ PyTorch ในการทำ one-hot encoding กับ
yแล้วบันทึกผลลัพธ์เป็นone_hot_pytorch
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
y = 1
num_classes = 3
# Create the one-hot encoded vector using NumPy
one_hot_numpy = np.array([____, ____, ____])
# Create the one-hot encoded vector using PyTorch
one_hot_pytorch = F.____(torch.tensor(y), num_classes=____)
print("One-hot vector using NumPy:", one_hot_numpy)
print("One-hot vector using PyTorch:", one_hot_pytorch)