เพิ่ม Batch Normalization ให้กับโมเดลที่คุ้นเคย
จำ ชุดข้อมูล digits ที่ฝึกในแบบฝึกหัดแรกของบทนี้ได้ไหม?
นั่นคือปัญหาการจำแนกประเภทแบบหลายคลาส ซึ่งแก้ไขโดยใช้ softmax และ 10 นิวรอนในเลเยอร์เอาต์พุต
คราวนี้จะสร้างโมเดลที่ลึกขึ้น ประกอบด้วย hidden layer 3 ชั้น แต่ละชั้นมี 50 นิวรอน โดยเพิ่ม batch normalization คั่นระหว่างเลเยอร์ และใช้พารามิเตอร์ kernel_initializer สำหรับการกำหนดค่าเริ่มต้นของน้ำหนัก
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
Deep Learning เบื้องต้นด้วย Keras
คำแนะนำการฝึกหัด
- นำเข้า
BatchNormalizationจากเลเยอร์ในtensorflow.keras - สร้างโมเดลแบบ deep network โดยใช้ 50 นิวรอนสำหรับแต่ละ hidden layer และเพิ่ม batch normalization คั่นระหว่างเลเยอร์
- คอมไพล์โมเดลโดยใช้ stochastic gradient descent (
sgd) เป็น optimizer
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Import batch normalization from keras layers
from tensorflow.____.____ import ____
# Build your deep network
batchnorm_model = ____
batchnorm_model.add(Dense(____, input_shape=(64,), activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(____, activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(____, activation='relu', kernel_initializer='normal'))
batchnorm_model.add(____)
batchnorm_model.add(Dense(10, activation='softmax', kernel_initializer='normal'))
# Compile your model with sgd
batchnorm_model.compile(optimizer=____, loss='categorical_crossentropy', metrics=['accuracy'])