如何使用 Python 在 Tensorflow 中添加密集层?


可以使用“add”方法将密集层添加到顺序模型中,并将层类型指定为“Dense”。首先将层展平,然后添加一层。此新层将应用于整个训练数据集。

阅读更多: 什么是 TensorFlow 以及 Keras 如何与 TensorFlow 协作创建神经网络?

我们将使用 Keras 顺序 API,它有助于构建一个顺序模型,该模型用于处理简单的层堆栈,其中每一层只有一个输入张量和一个输出张量。

我们正在使用 Google Colaboratory 来运行以下代码。Google Colab 或 Colaboratory 帮助在浏览器上运行 Python 代码,无需任何配置,并可免费访问 GPU(图形处理单元)。Colaboratory 建立在 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()

代码来源:https://tensorflowcn.cn/tutorials/images/cnn

输出

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
_________________________________________________________________

解释

  • 为了完成模型,将来自卷积基的最后一个输出张量(形状为 (4, 4, 64))馈送到一个或多个密集层以执行分类。
  • 密集层将以向量作为输入(为 1D),而当前输出为 3D 张量。
  • 接下来,将 3D 输出展平为 1D,并在其上添加一个或多个密集层。
  • CIFAR 有 10 个输出类别,因此添加了一个具有 10 个输出的最终密集层。
  • 在经过两个密集层之前,(4, 4, 64) 输出被展平为形状为 (1024) 的向量。

更新于: 2021年2月20日

781 次浏览

启动你的 职业生涯

通过完成课程获得认证

开始学习
广告