บทนำ
สร้างโมเดล regression แบบง่ายด้วย Keras Sequential API เพื่อพยากรณ์อายุหอย (Abalone age) จากคุณสมบัติทางกายภาพ
โค้ดตัวอย่าง
print("The sequential model is being built")
abalone_model = tf.keras.Sequential([
layers.Dense(64),
layers.Dense(1)
])
abalone_model.compile(loss=tf.losses.MeanSquaredError(), optimizer=tf.optimizers.Adam())
print("The data is being fit to the model")
abalone_model.fit(abalone_features, abalone_labels, epochs=10)ผลลัพธ์
The sequential model is being built The data is being fit to the model Epoch 1/10 104/104 [==============================] - 0s 963us/step - loss: 84.2213 Epoch 2/10 104/104 [==============================] - 0s 924us/step - loss: 16.0268 Epoch 3/10 104/104 [==============================] - 0s 860us/step - loss: 9.4125 Epoch 4/10 104/104 [==============================] - 0s 898us/step - loss: 8.9159 Epoch 5/10 104/104 [==============================] - 0s 912us/step - loss: 7.9076 Epoch 6/10 104/104 [==============================] - 0s 936us/step - loss: 6.8316 Epoch 7/10 104/104 [==============================] - 0s 992us/step - loss: 7.1021 Epoch 8/10 104/104 [==============================] - 0s 1ms/step - loss: 7.0550 Epoch 9/10 104/104 [==============================] - 0s 1ms/step - loss: 6.2762 Epoch 10/10 104/104 [==============================] - 0s 883us/step - loss: 6.5584
คำอธิบาย
Sequential([Dense(64), Dense(1)]): โมเดล linear stack, input tensor เดียว → hidden 64 units → output 1 unit (age)- Loss: MeanSquaredError (เหมาะ regression)
- Optimizer: Adam (adaptive learning rate)
- Loss ลดลงจาก 84 → ~6.5 แสดงการเรียนรู้
เปรียบเทียบกับ Normalization Model (บทความก่อนหน้า)
โมเดลนี้ ไม่มี normalization layer → loss สูงกว่าและไม่เสถียรเท่าโมเดลที่มี normalization (loss ~4.8)
แนะนำ: ควรเพิ่ม normalization layer หรือ normalize ข้อมูลก่อน train