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

Làm thế nào để Tensorflow có thể được sử dụng để thêm các lớp dày đặc lên trên bằng Python?

Một lớp dày đặc có thể được thêm vào mô hình tuần tự bằng cách sử dụng phương thức ‘add’ và chỉ định loại lớp là ‘Dense’. Các lớp đầu tiên được làm phẳng, và sau đó một lớp được thêm vào. Lớp mới này sẽ được áp dụng cho toàn bộ tập dữ liệu đào tạo.

Đọ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.

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.

print("Adding dense layer on top")
model.add(layers.Flatten())
model.add(layers.Dense(64, activation='relu'))
model.add(layers.Dense(10))
print("Complete architecture of the model")
model.summary()

Tín dụng mã:https://www.tensorflow.org/tutorials/images/cnn

Đầu ra

Adding dense layer on top
Complete architecture of the model
Model: "sequential_1"
_________________________________________________________________
Layer (type)                         Output Shape         Param #  
=================================================================
conv2d_3 (Conv2D)                  (None, 30, 30, 32)      896        
_________________________________________________________________
max_pooling2d_2 (MaxPooling2 (None, 15, 15, 32)            0            
_________________________________________________________________
conv2d_4 (Conv2D)                  (None, 13, 13, 64)      18496      
_________________________________________________________________
max_pooling2d_3 (MaxPooling2 (None, 6, 6, 64)               0            
_________________________________________________________________
conv2d_5 (Conv2D)                  (None, 4, 4, 64)         36928      
_________________________________________________________________
flatten (Flatten)                  (None, 1024)               0            
_________________________________________________________________
dense (Dense)                        (None, 64)               65600      
_________________________________________________________________
dense_1 (Dense)                     (None, 10)               650        
=================================================================
Total params: 122,570
Trainable params: 122,570
Non-trainable params: 0
_________________________________________________________________

Giải thích

  • Để hoàn thành mô hình, bộ căng đầu ra cuối cùng từ cơ sở chập (của hình (4, 4, 64)) được đưa vào một hoặc nhiều lớp Đặc để thực hiện phân loại.
  • Các lớp dày đặc sẽ lấy vectơ làm đầu vào (là 1D) và đầu ra hiện tại là bộ căng 3D.
  • Tiếp theo, đầu ra 3D được làm phẳng thành 1D và một hoặc nhiều lớp dày đặc được thêm lên trên.
  • CIFAR có 10 lớp đầu ra, vì vậy, lớp dày đặc cuối cùng với 10 đầu ra sẽ được thêm vào.
  • Các đầu ra (4, 4, 64) được làm phẳng thành các vectơ có hình dạng (1024) trước khi đi qua hai lớp dày đặc.