Python 如何使用Python创建基于Tensorflow的卷积基?

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)控制。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程