การสร้างโมเดล CNN
การสร้างโมเดล CNN ใน Keras ไม่ได้ยากกว่าการสร้างโมเดลอื่น ๆ ที่ผ่านมาในคอร์สนี้เลย เพียงแค่นำ convolutional layer มาใช้เพิ่มเติมเท่านั้น
ในแบบฝึกหัดนี้ จะสร้างโมเดล convolutional แบบ shallow สำหรับจำแนกชุดข้อมูลตัวเลข MNIST ซึ่งเป็นชุดเดียวกับที่ใช้ลด noise ด้วย autoencoder ก่อนหน้า รูปภาพมีขนาด 28 x 28 พิกเซล และมีเพียง 1 channel เนื่องจากเป็นภาพขาวดำ
มาสร้างโมเดล convolutional ขนาดเล็กนี้กันเลย!
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- Import เลเยอร์
Conv2DและFlattenจากนั้น instantiate โมเดล - เพิ่ม convolutional layer แรกที่มี 32 filter ขนาด 3x3 และกำหนด
input_shapeเป็น tuple 3 มิติที่เหมาะสม - เพิ่ม convolutional layer ที่สองที่มี 16 filter ขนาด 3x3 พร้อม activation แบบ relu
- Flatten ผลลัพธ์จากเลเยอร์ก่อนหน้าให้เป็นเวกเตอร์หนึ่งมิติ
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import the Conv2D and Flatten layers and instantiate model
from tensorflow.keras.____ import ____,____
model = ____
# Add a convolutional layer of 32 filters of size 3x3
model.add(Conv2D(____, kernel_size = ____, input_shape = (____, ____, 1), activation = 'relu'))
# Add a convolutional layer of 16 filters of size 3x3
model.add(____(____, ____ = ____, activation = ____))
# Flatten the previous layer output
model.add(____)
# Add as many outputs as classes with softmax activation
model.add(Dense(10, activation = 'softmax'))