การใช้ One-Hot Encoding เพื่อแทนค่าภาพ
โครงข่ายประสาทเทียมต้องการให้ป้ายกำกับของคลาสในชุดข้อมูลอยู่ในรูปแบบ one-hot encoding กล่าวคือ แต่ละแถวในอาร์เรย์จะมีค่าเป็นศูนย์ในทุกคอลัมน์ ยกเว้นคอลัมน์ที่ตรงกับป้ายกำกับนั้น ซึ่งจะถูกกำหนดเป็น 1
ชุดข้อมูล fashion มีสามหมวดหมู่ ได้แก่
- เสื้อ
- ชุดเดรส
- รองเท้า
ในแบบฝึกหัดนี้ จะสร้าง one-hot encoding จากตัวอย่างป้ายกำกับขนาดเล็กชุดหนึ่ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การสร้างโมเดลภาพด้วย Keras
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้นให้ตัวแปร
ohe_labelsเพื่อเก็บอาร์เรย์แบบ one-hot encoding - ใช้
np.where()เพื่อค้นหาตำแหน่งของหมวดหมู่ของรายการในแต่ละรอบการวนซ้ำในcategories - กำหนดค่า
1ลงในตำแหน่งแถว/คอลัมน์ที่ถูกต้องในทุกรอบการวนซ้ำ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# The number of image categories
n_categories = 3
# The unique values of categories in the data
categories = np.array(["shirt", "dress", "shoe"])
# Initialize ohe_labels as all zeros
ohe_labels = ____((len(labels), n_categories))
# Loop over the labels
for ii in range(len(labels)):
# Find the location of this label in the categories variable
jj = np.where(___)
# Set the corresponding zero to one
ohe_labels[____] = ____