Computer >> Máy Tính >  >> Lập trình >> Python

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

Kết quả đào tạo có thể được trực quan hóa bằng Tensorflow bằng Python với sự trợ giúp của thư viện ‘matplotlib’. Phương thức 'plot' được sử dụng để vẽ dữ liệu trên bảng điều khiển.

Đọc thêm: TensorFlow là gì và cách Keras làm việc với TensorFlow để tạo Mạng thần kinh?

Chúng tôi sẽ sử dụng API tuần tự Keras, hữu ích trong việc xây dựng mô hình tuần tự được sử dụng để làm việc với một chồng lớp đơn giản, trong đó mỗi lớp có chính xác một tensor đầu vào và một tensor đầu ra.

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

Bộ phân loại hình ảnh được tạo bằng mô hình keras.Sequential và dữ liệu được tải bằng preprocessing.image_dataset_from_directory. Dữ liệu được tải ra khỏi đĩa một cách hiệu quả. Việc trang bị quá nhiều được xác định và áp dụng các kỹ thuật để giảm thiểu nó. Những kỹ thuật này bao gồm tăng dữ liệu và bỏ cuộc. Có hình ảnh của 3700 bông hoa. Tập dữ liệu này chứa 5 thư mục con và có một thư mục con cho mỗi lớp. Đó là:hoa cúc, bồ công anh, hoa hồng, hoa hướng dương và hoa tulip.

Chúng tôi đang sử dụng Google Colaboratory để chạy đoạn mã dưới đây. Google Colab hoặc Colaboratory giúp chạy mã Python qua trình duyệt và không yêu cầu cấu hình cũng như quyền truy cập miễn phí vào GPU (Đơn vị xử lý đồ họa). Colaboratory đã được xây dựng trên Jupyter Notebook.

Ví dụ

print("Calculating the accuracy")
acc = history.history['accuracy']
val_acc = history.history['val_accuracy']
print("Calculating the loss")
loss = history.history['loss']
val_loss = history.history['val_loss']

epochs_range = range(epochs)
print("The results are being visualized")
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()

Mã tín dụng −https://www.tensorflow.org/tutorials/images/classification

Đầu ra

Calculating the accuracy
Calculating the loss
The results are being visualized

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

Giải thích

  • Các biểu đồ trên chỉ ra rằng độ chính xác của quá trình đào tạo và độ chính xác của quá trình xác thực không đồng bộ.

  • Mô hình chỉ đạt được độ chính xác khoảng 60% trên tập dữ liệu xác thực.

  • Điều này được gọi là overfitting.

  • Độ chính xác của quá trình đào tạo đã tăng lên một cách tuyến tính theo thời gian, nhưng độ chính xác của quá trình xác thực đã bị đình trệ ở mức khoảng 60% trong quá trình đào tạo.

  • Khi số lượng ví dụ đào tạo ít, mô hình học hỏi từ các tiếng ồn hoặc các chi tiết không mong muốn từ các ví dụ đào tạo.

  • Điều này tác động tiêu cực đến hiệu suất của mô hình đối với các ví dụ mới.

  • Do trang bị quá nhiều, mô hình sẽ không thể tổng quát hóa tốt trên tập dữ liệu mới.

  • Có nhiều cách để tránh mặc trang phục quá lố. Chúng tôi sẽ sử dụng tăng cường dữ liệu để khắc phục tình trạng trang bị quá mức.