Biên dịch và huấn luyện mô hình CNN phân loại CIFAR-10 (10 classes).
Mã ví dụ
print("Biên dịch mô hình...")
model.compile(
optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['accuracy']
)
print("Huấn luyện mô hình...")
history = model.fit(
train_images, train_labels,
epochs=10,
validation_data=(test_images, test_labels)
)
Kết quả
Biên dịch mô hình Huấn luyện mô hình... Epoch 1/10 1563/1563 [==============================] - 70s 44ms/step - loss: 1.7408 - accuracy: 0.3557 - val_loss: 1.2260 - val_accuracy: 0.5509 Epoch 2/10 1563/1563 [==============================] - 67s 43ms/step - loss: 1.1928 - accuracy: 0.5751 - val_loss: 1.0800 - val_accuracy: 0.6159 ... Epoch 10/10 1563/1563 [==============================] - 66s 42ms/step - loss: 0.5913 - accuracy: 0.7953 - val_loss: 0.8884 - val_accuracy: 0.7053
Giải thích
- Dữ liệu: CIFAR-10 (50k train, 10k test, 32x32 RGB, 10 classes).
model.fit(x, y, epochs=10, validation_data=(x_val, y_val)).- Train accuracy tăng từ 35% → 79%. Val accuracy tăng từ 55% → 70.5%.
- Gap train/val ~9% → overfitting nhẹ.
- Mô hình: 3 Conv2D blocks + Flatten + 2 Dense (xem bài 1003103423).