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

pythonserver side programmingprogrammingtensorflow

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

阅读更多: 什么是 TensorFlow,以及 Keras 如何与 TensorFlow 配合使用来创建神经网络?

我们将使用 Keras Sequential 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://www.tensorflow.org/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))被馈送到一个或多个 Dense 层以执行分类。
  • Dense 层将以向量作为输入(1D),当前输出是 3D 张量。
  • 接下来,3D 输出被展平为 1D,并在顶部添加一个或多个 Dense 层。
  • CIFAR 有 10 个输出类别,因此添加了具有 10 个输出的最终 Dense 层。
  • 在经过两个 Dense 层之前,(4, 4, 64) 输出被展平为形状为 (1024) 的向量。

相关文章