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

API chức năng có thể được sử dụng như thế nào để hoạt động với các kết nối còn lại trong Python?

Keras hiện diện 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 tensorflowf 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ã;

Ví dụ

 print ("Toy ResNet model cho CIFAR10") print ("Các lớp được tạo cho mô hình") input =keras.Input (shape =(32, 32, 3), name ="img") x =layer.Conv2D ( 32, 3, kích hoạt ="relu") (đầu vào) x =lớp.Conv2D (64, 3, kích hoạt ="relu") (x) khối_1_output =lớp.MaxPooling2D (3) (x) x =lớp.Conv2D (64 , 3, kích hoạt ="relu", padding ="giống nhau") (khối_1_output) x =lớp.Conv2D (64, 3, kích hoạt ="relu", padding ="cùng") (x) khối_2_output =lớp.add ([ x, block_1_output]) x =layer.Conv2D (64, 3, kích hoạt ="relu", padding ="giống nhau") (block_2_output) x =lớp.Conv2D (64, 3, kích hoạt ="relu", padding ="giống nhau ") (x) block_3_output =layer.add ([x, block_2_output]) x =layer.Conv2D (64, 3, kích hoạt =" relu ") (block_3_output) x =layer.GlobalAveragePooling2D () (x) x =layer. Dense (256, kích hoạt ="relu") (x) x =lớp.Dropout (0,5) (x) đầu ra =lớp.Dense (10) (x) model =keras.Model (đầu vào, đầu ra, name ="toy_resnet" ) print ("Thông tin thêm về kiểu máy") model.summary () 

Tín dụng mã - https://www.tensorflow.org/guide/keras/f Chức năng

Đầu ra

 Mô hình Toy ResNet cho CIFAR10Layers được tạo cho mô hìnhThông tin thêm về mô hìnhModel:"toy_resnet" __________________________________________________________________________________________________ Lớp (loại) Đầu ra Hình dạng Tham số # Được kết nối với ==================================================================================================img (InputLayer) [(Không có, 32, 32, 3)] 0__________________________________________________________________________________________________conv2d_32 (Conv2D) (Không có, 30 , 30, 32) 896 img [0] [0] __________________________________________________________________________________________________m2d_33 (Conv2D) (Không có, 28, 28, 64) 18496 đối tượng_32 [0] [0] __________________________________________________________________________________________________ max_pooling2d_8 (MaxPooling2D) (Không có, 9, 9, 64) 0 đối tượng_33 [ 0] [0] _____________________________________________________________________ _____________________________conv2d_34 (Conv2D) (Không có, 9, 9, 64) 36928 max_pooling2d_8 [0] [0] __________________________________________________________________________________________________ convert2d_35 (Conv2D) (Không có, 9, 9, 64) 36928 chuyển đổi 2d_34 [0] [0] __________________________________________________________________________________________________ add_12 (Không có, 9) , 9, 64) 0 chuyển đổi 2d_35 [0] [0] max_pooling2d_8 [0] [0] __________________________________________________________________________________________________chuyển đổi 2d_36 (Conv2D) (Không có, 9, 9, 64) 36928 add_12 [0] [0] ___________________________________________________________________________________________________cấp_37 (Conv2D) (Không có, 9, 9, 64) 36928 chuyển đổi_36 [0] [0] __________________________________________________________________________________________________ add_13 (Thêm) (Không có, 9, 9, 64) 0 chuyển đổi_37 [0] [0] add_12 [0] [0] ___________________________________________________________________________________________________v2d_38 (Conv2D) (Không có, 7, 7, 64) 36928 add_13 [0] [0] __________________________________________________________________________________________________ global_average_pooling2d_1 (Glo (Không có, 64) 0 chuyển đổi_38 [0 ] [0] __________________________________________________________________________________________________ rậm rạp_40 (Mật độ) (Không có, 256) 16640 global_average_pooling2d_1 [0] [0] __________________________________________________________________________________________________ dropout_2 (Bỏ học) (Không, 256) 0 rậm rạp_40 [0] [0] __________________________________________________________________________________________________ rậm rạp_41 (Không có gì, 10 bỏ học) 2570 0] [0] ====================================================================================================Tổng số tham số:223.242 Tham số có thể huấn luyện:223.242 

Giải thích

  • Mô hình có nhiều đầu vào và đầu ra.

  • API chức năng giúp dễ dàng làm việc với các cấu trúc liên kết kết nối phi tuyến tính.

  • Mô hình này với các lớp không được kết nối tuần tự, do đó, API 'Tuần tự' không thể hoạt động với nó.

  • Đây là nơi các kết nối còn lại xuất hiện trong bức tranh.

  • Một mô hình ResNet mẫu sử dụng CIFAR10 được xây dựng để chứng minh điều tương tự.