เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

เขียน Pooling Operation ของตัวเอง

อย่างที่เห็นมาแล้ว CNN อาจมีพารามิเตอร์จำนวนมาก Pooling layer มักถูกเพิ่มระหว่าง convolutional layer ในโครงข่ายประสาทเทียม เพื่อสรุปผลลัพธ์ให้กระชับขึ้น และลดจำนวนพารามิเตอร์ในเลเยอร์ถัดไป ซึ่งช่วยให้ฝึกโมเดลได้เร็วขึ้น หรือใช้งานได้แม้มีข้อมูลไม่เพียงพอสำหรับการเรียนรู้พารามิเตอร์จำนวนมาก

Pooling layer ทำงานคล้ายกับ convolution รูปแบบหนึ่ง โดยสำหรับทุก window ในอินพุต จะเลือกค่าพิกเซลที่มากที่สุดแล้วส่งต่อเฉพาะค่านั้น ในแบบฝึกหัดนี้ จะได้เขียน max pooling operation ของตัวเอง โดยอ้างอิงจากโค้ดที่เคยใช้เขียน convolution แบบสองมิติมาก่อน

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การสร้างโมเดลภาพด้วย Keras

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เข้าถึงอาร์เรย์อินพุต (im) และเลือก window ที่ต้องการ
  • หาค่าสูงสุดใน window นั้น
  • นำค่าที่ได้ไปเก็บในตำแหน่งที่ถูกต้องของอาร์เรย์ผลลัพธ์ (result)

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# Result placeholder
result = np.zeros((im.shape[0]//2, im.shape[1]//2))

# Pooling operation
for ii in range(result.shape[0]):
    for jj in range(result.shape[1]):
        result[ii, jj] = np.max(____)
แก้ไขและรันโค้ด