- 1 引言
- 2 卷积的概念
- 3 数据周围全零填充padding
- 4 池化pool
- 5 舍弃Dropout
- 6 卷积NN
- 相关笔记
(1)全连接网络NN:每个神经元与前后相邻层的每一个神经元都有连接关系,输入是特征,输出是预测的结果。
待优化的参数过多,容易导致模型过拟合 实际应用中会先对原始图像进行特征提取,再把提取到的特征喂给全连接网络。
2 卷积的概念卷积可被认为是一种有效提取图像特征的方法 一般会用一个正方形卷积核,遍历图片上的每个点,图片区域内,相对应的每一个像素点,乘以卷积核内相对对应点的权重,求和,再加上偏置。
输出图片边长 = (输入图片边长-卷积核长 +1)/步长 此图中:(5-3+1)/ 1 =3
3 数据周围全零填充padding有时候为了保证输入图片和输入图片一致,需要对输入的数据进行全零填充。
计算公式
在TensorFlow框架中,用参数padding ='SAME’或padding = ‘VALID’ 表示 (3)TensorFlow计算卷积
tf.nn.conv2d(输入描述,eg,[batch,5,5,1]#5 5表示每张图片的分辨率大小5行5列,1表示通道数,如果是灰度图示1,如果是彩色图,有红绿蓝三种颜色,就是3通道
卷积核描述, eg.[3,3,1,16]
核滑动步长,eg.[1,1,1,1]
padding= 'VALID'
)
彩色图的卷积如下,图片包含了三个颜色分为三个信息,分别对它们进行卷积。
彩色图片的卷积实现如下
tf.nn.conv2d(输入描述,eg,[batch,5,5,3]#5 5表示每张图片的分辨率大小5行5列,1表示通道数,如果是灰度图示1,如果是彩色图,有红绿蓝三种颜色,就是3通道
卷积核描述, eg.[3,3,3,16]
核滑动步长,eg.[1,1,1,1]
padding= 'VALID'
)
池化用于减少特征数量;最大值池化可提取图片纹理,均值池化可保留背景特征
TensorFlow实现
pool =tf.nn.max_pool(输入描述,eg.[batch,28,28,6])
pool = tf.nn.avg_pool
在神经网络训练的过程汇总,将一部分神经元按照一定概率从神经网络中暂时舍弃,使用时被舍弃的神经元恢复连接
TensorFlow实现
tf.nn.dropout(上层输出,暂时舍弃的概率)
if train: 输出 = tf.nn.dropout(上层输出,暂时舍弃的概率)
6 卷积NN
借助卷积核(kernel)提取特征后,送入全连接网络 CNN的主要模块如下
CNN模型非发展历史 Lenet5 -->AlexNet -->VGGNet -->…–>GooleNet–>ResNet
相关笔记以下所有源码以及更详细PDF笔记请在github下载 TensorFolwNotebook-from-Peking-University
- 【北京大学】1 TensorFlow1.x中Python基础知识
- 【北京大学】2 TensorFlow1.x的张量、计算图、会话
- 【北京大学】3 TensorFlow1.x的前向传播推导与实现
- 【北京大学】4 TensorFlow1.x的反向传播推导与实现
- 【北京大学】5 TensorFlow1.x的损失函数和交叉熵举例讲解及实现
- 【北京大学】6 TensorFlow1.x的学习率、滑动平均和正则化实例及实现
- 【北京大学】7 TensorFlow1.x的神经网络模块设计思想举例及实现
- 【北京大学】8 TensorFlow1.x的Mnist数据集实例实现
- 【北京大学】9 TensorFlow1.x的实现自定义Mnist数据集
- 【北京大学】10 TensorFlow1.x的卷积神经网络(CNN)相关基础知识
- 【北京大学】11 TensorFlow1.x的卷积神经网络模型Lenet5实现
- 【北京大学】12 TensorFlow1.x的卷积神经网络模型VGGNet实现
- 【北京大学】13 TensorFlow1.x的项目实战之手写英文体识别OCR技术
- 【北京大学】14 TensorFlow1.x的二值神经网络实现MNIST数据集手写数字识别
- 【北京大学】15 TensorFlow1.x的项目实战之人脸表情识别
- 【北京大学】16 TensorFlow1.x的项目实战之图像风格融合与快速迁移