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

Làm thế nào để học chuyển tiếp có thể được thực hiện trong Python bằng Keras?

Tensorflow là một khuôn khổ học máy được cung cấp bởi Google. Nó là một khung công tác mã nguồn mở được sử dụng kết hợp với Python để triển khai các thuật toán, ứng dụng học sâu và hơn thế nữa. Nó được sử dụng trong nghiên cứu và cho mục đích sản xuất.

Tensor là một cấu trúc dữ liệu được sử dụng trong TensorFlow. Nó giúp kết nối các cạnh trong một sơ đồ luồng. Sơ đồ luồng này được gọi là 'Biểu đồ luồng dữ liệu'. Tensors không là gì khác ngoài một mảng đa chiều hoặc một danh sách.

Keras có nghĩa là 'sừng' trong tiếng Hy Lạp. Keras được phát triển như một phần nghiên cứu của dự án ONEIROS (Hệ điều hành Robot thông minh điện tử thần kinh mở). Keras là một API học sâu, được viết bằng Python. Đây là một API cấp cao có giao diện hiệu quả giúp giải quyết các vấn đề về máy học.

Nó chạy trên khuôn khổ Tensorflow. Nó được xây dựng để giúp thử nghiệm một cách nhanh chóng. Nó cung cấp các khối xây dựng và trừu tượng thiết yếu cần thiết trong việc phát triển và đóng gói các giải pháp học máy.

Nó có khả năng mở rộng cao và đi kèm với các khả năng đa nền tảng. Điều này có nghĩa là Keras có thể chạy trên TPU hoặc các cụm GPU. Các mô hình Keras cũng có thể được xuất để chạy trong trình duyệt web hoặc điện thoại di động.

Keras đã có trong gói Tensorflow. Nó có thể được truy cập bằng cách sử dụng dòng mã dưới đây.

import tensorflow
from tensorflow import keras

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. Sau đây là đoạn mã -

Ví dụ

model = keras.Sequential([
   keras.Input(shape=(784))
   layers.Dense(32, activation='relu'),
   layers.Dense(32, activation='relu'),
   layers.Dense(32, activation='relu'),
   layers.Dense(10),
])
print("Load the pre-trained weights")
model.load_weights(...)
print("Freeze all the layers except the last layer")
for layer in model.layers[:-1]:
   layer.trainable = False
print("Recompile the model and train it")
print("The last layer weights will be updated")
model.compile(...)
model.fit(...)

Tín dụng mã - https://www.tensorflow.org/guide/keras/sequential_model

Đầu ra

Load the pre-trained weights
Freeze all the layers except the last layer
Recompile the model and train it
The last layer weights will be updated

Giải thích

  • Học chuyển giao chỉ ra sự đóng băng của các lớp dưới cùng trong một mô hình và đào tạo các lớp trên cùng.

  • Mô hình tuần tự được xây dựng.

  • Các trọng lượng được đào tạo trước của mô hình cũ được tải và ràng buộc với mô hình này.

  • Các lớp dưới cùng bị đóng băng ngoại trừ lớp cuối cùng.

  • Các lớp được lặp lại và ‘layer.trainable’ được đặt thành ‘False’ cho mọi lớp ngoại trừ lớp cuối cùng.

  • Nó được biên dịch và phù hợp với dữ liệu.