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.