Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

TensorFlow: คอมไพล์และฝึกโมเดล CNN

คอมไพล์และฝึกโมเดล CNN (Convolutional Neural Network) สำหรับจำแนกภาพ

โค้ดตัวอย่าง

print("คอมไพล์โมเดล...")
model.compile(
    optimizer='adam',
    loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
    metrics=['accuracy']
)

print("ฝึกโมเดลให้เข้ากับข้อมูล...")
history = model.fit(
    train_images, train_labels,
    epochs=10,
    validation_data=(test_images, test_labels)
)

ผลลัพธ์

คอมไพล์โมเดล
ฝึกโมเดลให้เข้ากับข้อมูล...
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

คำอธิบาย

  • Compile: กำหนด optimizer, loss, metrics ก่อนฝึก
  • Fit: ฝึกโมเดล 10 epochs บน train_images, train_labels
  • validation_data: ตรวจสอบประสิทธิภาพบน test set ทุก epoch
  • Training accuracy: 35% -> 79% | Validation accuracy: 55% -> 70%
  • CNN เหมาะสำหรับภาพ เพราะ Conv2D ดึง feature ท้องถิ่น (edges, textures) ได้ดี