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

TensorFlow có thể được sử dụng để trực quan hóa kết quả huấn luyện bằng Python như thế nào?


Kết quả huấn luyện có thể được trực quan hóa với TensorFlow bằng Python nhờ thư viện 'matplotlib'. Phương thức 'plot' được dùng để vẽ dữ liệu trên console.

Đọc thêm: TensorFlow là gì và Keras hoạt động như thế nào với TensorFlow để tạo mạng nơ-ron?

Chúng ta sẽ sử dụng Keras Sequential API, giúp xây dựng mô hình tuần tự dùng cho stack các layer đơn giản, nơi mỗi layer có chính xác một input tensor và một output tensor.

Một mạng nơ-ron chứa ít nhất một layer được gọi là layer tích chập. Chúng ta có thể sử dụng Mạng nơ-ron tích chập (CNN) để xây dựng mô hình học.

Một image classifier được tạo bằng keras.Sequential model, và dữ liệu được tải bằng preprocessing.image_dataset_from_directory. Dữ liệu được tải hiệu quả từ đĩa. Overfitting được xác định và các kỹ thuật được áp dụng để giảm thiểu. Các kỹ thuật này bao gồm data augmentation và dropout. Có 3700 hình ảnh hoa. Tập dữ liệu này chứa 5 thư mục con, mỗi thư mục cho một lớp. Chúng là: daisy, dandelion, roses, sunflowers, và tulips.

Chúng ta đang sử dụng Google Colaboratory để chạy mã dưới đây. Google Colab giúp chạy mã Python trên trình duyệt và yêu cầu cấu hình zero và truy cập miễn phí GPU. Colaboratory được xây dựng dựa trên Jupyter Notebook.

Ví dụ

print("Tính toán accuracy")
acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
print("Tính toán loss")
loss = history.history['loss']
val_loss = history.history['val_loss']
epochs_range = range(epochs)
print("Kết quả đang được trực quan hóa")
plt.figure(figsize=(8, 8))
plt.subplot(1, 2, 1)
plt.plot(epochs_range, acc, label='Training Accuracy')
plt.plot(epochs_range, val_acc, label='Validation Accuracy')
plt.legend(loc='lower right')
plt.title('Training and Validation Accuracy')
plt.subplot(1, 2, 2)
plt.plot(epochs_range, loss, label='Training Loss')
plt.plot(epochs_range, val_loss, label='Validation Loss')
plt.legend(loc='upper right')
plt.title('Training and Validation Loss')
plt.show()

Nguồn mã: https://www.tensorflow.org/tutorials/images/classification

Đầu ra

Tính toán accuracy
Tính toán loss
Kết quả đang được trực quan hóa

TensorFlow có thể được sử dụng để trực quan hóa kết quả huấn luyện bằng Python như thế nào?

Giải thích

  • Các biểu đồ trên cho thấy training accuracy và validation accuracy không đồng bộ.
  • Mô hình chỉ đạt khoảng 60% accuracy trên validation dataset.
  • Đây được gọi là overfitting.
  • Training accuracy tăng tuyến tính theo thời gian, nhưng validation accuracy đình trệ ở mức 60% trong quá trình huấn luyện.
  • Khi số lượng ví dụ huấn luyện nhỏ, mô hình học từ nhiễu hoặc chi tiết không mong muốn từ ví dụ huấn luyện.
  • Điều này ảnh hưởng tiêu cực đến hiệu suất mô hình trên ví dụ mới.
  • Do overfitting, mô hình sẽ không thể khái quát hóa tốt trên tập dữ liệu mới.
  • Có nhiều cách tránh overfitting. Chúng ta sẽ dùng data augmentation để khắc phục.