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

TensorFlow có thể được sử dụng để tạo feature extractor bằng Python như thế nào?


TensorFlow có thể được sử dụng để tạo feature extractor bằng cách sử dụng buffered prefetching. Điều này được thực hiện bằng cách thiết lập trainable=False.

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

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.

Trực quan sau học chuyển giao cho phân loại hình ảnh là: nếu một mô hình được huấn luyện trên một tập dữ liệu lớn và chung, mô hình này có thể được sử dụng hiệu quả như một mô hình chung cho thế giới thị giác. Nó đã học được các bản đồ đặc trưng, nghĩa là người dùng không phải bắt đầu từ đầu bằng cách huấn luyện một mô hình lớn trên tập dữ liệu lớn.

TensorFlow Hub là kho chứa các mô hình TensorFlow đã huấn luyện sẵn. TensorFlow có thể được dùng để tinh chỉnh mô hình học.

Chúng ta sẽ hiểu cách sử dụng các mô hình từ TensorFlow Hub với tf.keras, sử dụng mô hình phân loại hình ảnh từ TensorFlow Hub. Sau khi làm xong, học chuyển giao có thể được thực hiện để tinh chỉnh mô hình cho các lớp hình ảnh tùy chỉnh. Điều này được thực hiện bằng cách sử dụng một mô hình phân loại đã huấn luyện sẵn để nhận một hình ảnh và dự đoán nó là gì. Điều này có thể làm được mà không cần bất kỳ huấn luyện nào.

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ụ

AUTOTUNE = tf.data.AUTOTUNE
train_ds = train_ds.cache().prefetch(buffer_size=AUTOTUNE)
print("Kích thước dữ liệu")
for image_batch, labels_batch in train_ds:
    print(image_batch.shape)
    print(labels_batch.shape)
    break

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

Đầu ra

Kích thước dữ liệu
(32, 224, 224, 3)
(32,)

Giải thích

  • TFHub phân phối mô hình mà không cần layer phân loại trên cùng.
  • Chúng có thể được dùng cho học chuyển giao.
  • Bất kỳ mô hình feature vector hình ảnh tương thích từ tfhub.dev đều có thể sử dụng.
  • Một feature extractor có thể được tạo, với sự giúp đỡ của trainable=False.
  • Điều này có thể được dùng để đóng băng các biến trong feature extractor layer.
  • Điều này được làm để huấn luyện chỉ sửa đổi layer classifier mới.
  • Sẽ trả về vector độ dài 1280 cho mỗi hình ảnh.