Python 如何使用Python创建基于Tensorflow的卷积基?
卷积神经网络通常包括以下几种层:卷积层、池化层和全连接层。
卷积神经网络已经被用于特定类型的问题(如图像识别)并取得了极好的结果。可以使用’models’类中存在的’sequential’方法来创建它。可以使用’add’方法将图层添加到这个卷积网络中。
我们将使用Keras Sequential API,该API有助于构建顺序模型,该模型用于处理一整组层,其中每一层都有一个输入张量和一个输出张量。
我们使用Google Colaboratory来运行下面的代码。 Google Colab或Colaboratory帮助在浏览器上运行Python代码,无需进行任何配置,并提供免费访问GPU(图形处理单元)。 Colaboratory是基于Jupyter Notebook构建的。
print("Creating the convolutional base")
model = models.Sequential()
model.add(layers.Conv2D(32, (3, 3), activation='relu', input_shape=(32, 32, 3)))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
model.add(layers.MaxPooling2D((2, 2)))
model.add(layers.Conv2D(64, (3, 3), activation='relu'))
print("Description of arhcitecture is")
model.summary()
代码来源: https://www.tensorflow.org/tutorials/images/cnn
阅读更多:Python 教程
输出
Creating the convolutional base
Description of arhcitecture is
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv2d (Conv2D) (None, 30, 30, 32) 896
_________________________________________________________________
max_pooling2d (MaxPooling2D) (None, 15, 15, 32) 0
_________________________________________________________________
conv2d_1 (Conv2D) (None, 13, 13, 64) 18496
_________________________________________________________________
max_pooling2d_1 (MaxPooling2 (None, 6, 6, 64) 0
_________________________________________________________________
conv2d_2 (Conv2D) (None, 4, 4, 64) 36928
=================================================================
Total params: 56,320
Trainable params: 56,320
Non-trainable params: 0
说明
-
上述代码行有助于使用常见的模式定义卷积基。
-
此模式是Conv2D和MaxPooling2D图层的堆栈。
-
输入形状为(图像高度,图像宽度,颜色通道)的CNN处理张量。
-
CNN设置为处理形状为(32、32、3)的输入,这是CIFAR图像的格式。
-
这可以通过将参数input_shape传递给我们的第一层来完成。
-
每个Conv2D和MaxPooling2D层的输出都是一个形状为(height,width,channels)的三维张量。
-
随着网络越来越深,宽度和高度的维度会减小。
-
每个Conv2D层的输出通道数由第一个参数(例如32或64)控制。
极客教程