บทนำ
หลังจากสร้าง normalization layer และเตรียมข้อมูล Abalone dataset (พยากรณ์อายุหอยจากขนาด/น้ำหนัก) ขั้นตอนต่อไปคือ compile และ fit โมเดล
โค้ดตัวอย่าง
print("The model is being compiled")
norm_abalone_model.compile(loss=tf.losses.MeanSquaredError(), optimizer=tf.optimizers.Adam())
print("The model is being fit to the data")
norm_abalone_model.fit(abalone_features, abalone_labels, epochs=8)ผลลัพธ์
The model is being compiled The model is being fit to the data Epoch 1/8 104/104 [==============================] - 0s 989us/step - loss: 98.3651 Epoch 2/8 104/104 [==============================] - 0s 945us/step - loss: 65.4568 Epoch 3/8 104/104 [==============================] - 0s 922us/step - loss: 21.7297 Epoch 4/8 104/104 [==============================] - 0s 912us/step - loss: 6.3429 Epoch 5/8 104/104 [==============================] - 0s 988us/step - loss: 5.0949 Epoch 6/8 104/104 [==============================] - 0s 958us/step - loss: 4.9868 Epoch 7/8 104/104 [==============================] - 0s 1ms/step - loss: 4.8982 Epoch 8/8 104/104 [==============================] - 0s 1ms/step - loss: 4.7936
คำอธิบาย
compile(): กำหนด loss function (MSE สำหรับ regression) และ optimizer (Adam)fit(): เทรนโมเดลด้วย features และ labels ระบุepochs(จำนวนรอบเทรนทั้ง dataset)- Loss ลดลงจาก 98 → 4.8 แสดงว่าโมเดลเรียนรู้ได้ดี
- Normalization layer (preprocessing.Normalization) คำนวณ mean/variance จาก training data ด้วย
adapt()แล้ว normalize อัตโนมัติระหว่าง training
ข้อสังเกต
ควรแยก validation set เพื่อ monitor overfitting และใช้ callbacks เช่น EarlyStopping, ModelCheckpoint ในการ train จริง