Python Tensorflow – tf.keras.layer.Conv2D()函数
在这篇文章中,我们将深入了解tf.keras.layer.Conv2D()在python编程语言中的使用。
卷积神经网络CNN
计算机视觉正在通过用大数据训练机器来模仿人类视觉来改变世界。卷积神经网络(CNN)是一种特殊类型的人工神经网络,它使用感知器/计算机图,是一种用于分析数据的机器学习单元算法。这些数据主要涉及图像。一个三维矢量维度通过特征图,然后使用Pooling技术对其进行降采样。广泛使用的对图像特征图进行降采样的Pooling技术是MaxPooling和MeanPooling。
CNN的应用
卷积神经网络被广泛用于计算机视觉技术,主要应用包括。
- Object Detection
- 分类。乳腺癌的预测
- Semantic Segmentation
- Self-driving
- Probability Control
Keras中的CNN实现: tk.keras.layer.Conv2D()
Conv2D的类结构。
tk.keras.layer.Conv2D()的常用参数是过滤器、kernel_size、strides、padding、激活。
参数 | 含义 |
---|---|
滤波器 | 卷积中的输出滤波器的数量,即总的特征图。 |
kernel_size | 一个元组或整数值,指定二维卷积窗口的高度和宽度。 |
strides | 一个整数或两个整数的元组/列表,指定卷积的跨度以及高度和宽度。 |
padding | “有效 “表示没有padding。”相同 “表示输出的大小与输入相同。 |
activation | 非线性函数 [relu, softmax, sigmoid, tanh) |
use_bias | 布尔型,该层是否使用偏置向量。 |
dilation_rate | 一个整数或2个整数的元组/列表,指定用于扩张卷积的扩张率。 |
kernel_initializer | 默认为’glorot_uniform’。 |
bias_initializer | 偏压向量的初始化器 |
kernel_constraint | 适用于内核矩阵的约束函数 |
bias_constraint | 适用于偏置向量的约束函数 |
使用Tensorflow的卷积神经网络
卷积神经网络是一种广泛使用的深度学习算法。使用CNN的主要目的是缩小输入的形状。在下面的例子中,我们采取4维图像像素,总共有50个64像素的图像数据。因为我们知道,图像是由三种颜色组成的,即RGB,因此4值3表示彩色图像。
在将输入的图像像素传递给Conv2D时,它缩小了输入尺寸。
示例:
输出:
通过提供相同的padding参数,输入大小将保持不变。
输出:
像素大小没有变化,因为我们提供的填充物是一样的。
实现keras.layer.Conv2D()模型
把到目前为止学到的一切付诸实践。首先,我们创建一个Keras序列模型,用32个大小为(3,3)的特征图创建一个卷积层。使用Relu进行激活,之后我们通过使用MaxPooling技术对数据进行降样。我们通过第二个卷积层的64个特征图来进一步缩小图像的规模。这个过程被称为特征提取。一旦特征提取完成,我们就可以将数据平铺成一个单一的向量,并将它们送入隐藏的密集层。在输出层使用softmax激活,以确保这些输出是分类的数据类型,这对图像分类很有帮助。
输出: