如何使用 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) 的向量。