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.
Gói 'tensorflow' có thể được cài đặt trên Windows bằng dòng mã bên dưới -
pip install tensorflow
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 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.
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
API chức năng Keras giúp tạo các mô hình linh hoạt hơn so với các mô hình được tạo bằng API tuần tự. API chức năng có thể hoạt động với các mô hình có cấu trúc liên kết phi tuyến tính, có thể chia sẻ các lớp và hoạt động với nhiều đầu vào và đầu ra. Mô hình học sâu thường là một đồ thị xoay chiều có hướng (DAG) chứa nhiều lớp. API chức năng giúp xây dựng biểu đồ của các lớp.
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ã xem cách tự động mã hóa được tạo bằng bộ mã hóa và bộ giải mã -
Ví dụ
encoder_input = keras.Input(shape=(28, 28, 1), name="img") print("Adding layers to the model") x = layers.Conv2D(16, 3, activation="relu")(encoder_input) x = layers.Conv2D(32, 3, activation="relu")(x) x = layers.MaxPooling2D(3)(x) x = layers.Conv2D(32, 3, activation="relu")(x) x = layers.Conv2D(16, 3, activation="relu")(x) print("Performing global max pooling") encoder_output = layers.GlobalMaxPooling2D()(x) print("Creating a model using the layers") encoder = keras.Model(encoder_input, encoder_output, name="encoder") print("More information about the model") encoder.summary() print("Reshaping the layers in the model") x = layers.Reshape((4, 4, 1))(encoder_output) x = layers.Conv2DTranspose(16, 3, activation="relu")(x) x = layers.Conv2DTranspose(32, 3, activation="relu")(x) x = layers.UpSampling2D(3)(x) x = layers.Conv2DTranspose(16, 3, activation="relu")(x) decoder_output = layers.Conv2DTranspose(1, 3, activation="relu")(x) autoencoder = keras.Model(encoder_input, decoder_output, name="autoencoder") print("More information about the autoencoder") autoencoder.summary()
Tín dụng mã - https://www.tensorflow.org/guide/keras/f Chức năng
Đầu ra
Adding layers to the model Performing global max pooling Creating a model using the layers More information about the model Model: "encoder" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= img (InputLayer) [(None, 28, 28, 1)] 0 _________________________________________________________________ conv2d (Conv2D) (None, 26, 26, 16) 160 _________________________________________________________________ conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 _________________________________________________________________ max_pooling2d (MaxPooling2D) (None, 8, 8, 32) 0 _________________________________________________________________ conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 _________________________________________________________________ conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 _________________________________________________________________ global_max_pooling2d (Global (None, 16) 0 ================================================================= Total params: 18,672 Trainable params: 18,672 Non-trainable params: 0 _________________________________________________________________ Reshaping the layers in the model More information about the autoencoder Model: "autoencoder" _________________________________________________________________ Layer (type) Output Shape Param # ================================================================= img (InputLayer) [(None, 28, 28, 1)] 0 _________________________________________________________________ conv2d (Conv2D) (None, 26, 26, 16) 160 _________________________________________________________________ conv2d_1 (Conv2D) (None, 24, 24, 32) 4640 _________________________________________________________________ max_pooling2d (MaxPooling2D) (None, 8, 8, 32) 0 _________________________________________________________________ conv2d_2 (Conv2D) (None, 6, 6, 32) 9248 _________________________________________________________________ conv2d_3 (Conv2D) (None, 4, 4, 16) 4624 _________________________________________________________________ global_max_pooling2d (Global (None, 16) 0 _________________________________________________________________ reshape (Reshape) (None, 4, 4, 1) 0 _________________________________________________________________ conv2d_transpose (Conv2DTran (None, 6, 6, 16) 160 _________________________________________________________________ conv2d_transpose_1 (Conv2DTr (None, 8, 8, 32) 4640 _________________________________________________________________ up_sampling2d (UpSampling2D) (None, 24, 24, 32) 0 _________________________________________________________________ conv2d_transpose_2 (Conv2DTr (None, 26, 26, 16) 4624 _________________________________________________________________ conv2d_transpose_3 (Conv2DTr (None, 28, 28, 1) 145 ================================================================= Total params: 28,241 Trainable params: 28,241 Non-trainable params: 0 _________________________________________________________________
Giải thích
-
Các lớp được thêm vào mô hình.
-
Tổng hợp tối đa toàn cầu được thực hiện trên các lớp này
-
Một mô hình được tạo bằng cách sử dụng các lớp.
-
Có thể hiển thị thêm thông tin về mô hình bằng phương pháp "tóm tắt".
-
Sử dụng API chức năng, các mô hình được tạo sau khi chỉ định đầu vào và đầu ra cho biểu đồ lớp.
-
Điều này chỉ ra rằng một biểu đồ có thể được sử dụng để tạo nhiều mô hình.
-
Ở đây, chồng lớp được sử dụng để khởi tạo hai mô hình - một bộ mã hóa có thể biến đầu vào hình ảnh thành vectơ 16 chiều và một mô hình mã tự động được sử dụng để đào tạo.