Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Huấn luyện và biên dịch mô hình CNN TensorFlow Python

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).