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

Định nghĩa loss, optimizer, train và đánh giá mô hình IMDB với TensorFlow


TensorFlow (Google) framework học máy mã nguồn mở. Cài đặt: pip install tensorflow.

IMDB dataset: >50.000 review phim, dùng cho NLP.

Chạy trên Google Colab (Python trên trình duyệt, GPU miễn phí).

Ví dụ

model.compile(loss=losses.BinaryCrossentropy(from_logits=True),
              optimizer='adam',
              metrics=tf.metrics.BinaryAccuracy(threshold=0.0))

epochs = 10
history = model.fit(
    train_ds,
    validation_data=val_ds,
    epochs=epochs)

loss, accuracy = model.evaluate(test_ds)
print("Loss:", loss)
print("Accuracy:", accuracy)

Nguồn mã: TensorFlow Text Classification

Đầu ra

Epoch 1/10 - loss: 0.6818 - binary_accuracy: 0.6130 - val_loss: 0.6135 - val_binary_accuracy: 0.7750
Epoch 2/10 - loss: 0.5785 - binary_accuracy: 0.7853 - val_loss: 0.4971 - val_binary_accuracy: 0.8230
Epoch 3/10 - loss: 0.4651 - binary_accuracy: 0.8372 - val_loss: 0.4193 - val_binary_accuracy: 0.8470
Epoch 4/10 - loss: 0.3901 - binary_accuracy: 0.8635 - val_loss: 0.3732 - val_binary_accuracy: 0.8612
Epoch 5/10 - loss: 0.3435 - binary_accuracy: 0.8771 - val_loss: 0.3444 - val_binary_accuracy: 0.8688
Epoch 6/10 - loss: 0.3106 - binary_accuracy: 0.8877 - val_loss: 0.3255 - val_binary_accuracy: 0.8730
Epoch 7/10 - loss: 0.2855 - binary_accuracy: 0.8970 - val_loss: 0.3119 - val_binary_accuracy: 0.8732
Epoch 8/10 - loss: 0.2652 - binary_accuracy: 0.9048 - val_loss: 0.3027 - val_binary_accuracy: 0.8772
Epoch 9/10 - loss: 0.2481 - binary_accuracy: 0.9125 - val_loss: 0.2959 - val_binary_accuracy: 0.8782
Epoch 10/10 - loss: 0.2328 - binary_accuracy: 0.9161 - val_loss: 0.2913 - val_binary_accuracy: 0.8792
Test - loss: 0.3099 - binary_accuracy: 0.8741
Loss: 0.3099007308483124
Accuracy: 0.8741199970245361

Giải thích

  • Biên dịch mô hình bằng compile(): BinaryCrossentropy, Adam, BinaryAccuracy.
  • Số epochs = 10.
  • fit() huấn luyện trên train_ds, validation trên val_ds.
  • evaluate() tính loss và accuracy trên test_ds.
  • Hiển thị loss/test accuracy cuối cùng: ~87.4%.