实践副作用于理论网络
1、概论。函数
全链接NN:每一个神经元与先后相邻层的每个神经元都有链接关系,输入是特征,输出为预测的结果,参数的个数:∑( 前层 X 后层 + 后层 )图片
为防止过拟合,实际应用中会先对原始图像进行特征提取,在把提取到的特征喂给全链接网络,io
卷积(Convolutional):可认为是一种有效提取图像特征的方法。通常会用一个正方形卷积核,遍历图片上的每一个点。图片区域内,相对应的每个像素值,乘以卷积核内相对应点的权重,求和,再加上偏置。tensorflow
池化(pooling):用于减小特征数量。最大值池化能够提取图片纹理,均值池化能够保留背景特征神经网络
## 输出图片边长=( 输入图片边长 - 卷积核长+1 ) / 步长 遍历
2、CNN模型的主要模块方法
一、高层次抽象特征 精减特征点:卷积 激活 池化di
二、全链接co
3、tensorflow相关函数
一、计算卷积:
tf.nn.conv2d (输入描述,eg.[ batch , 5,5( 注:5,5分辨率 ),3( 注:通道数,此处为rgb三通道 ) ]
卷积核描述,eg.[ 3,3( 注:行列分辨率:3*3 ), 1( 注:通道数) ,16(注:核个数) ] ( 注:说明输出深度是16,输出通道为16,有16个输出 )
核滑动步长,eg.[ 1(注:固定是1) , 1( 注:行步长), 1( 注:列步长) ,1(注:固定是1,偏置???) ]
padding='VALID' ( 注:valid表示不用全零填充,不然为same )
)
二、计算池化:
最大池化为tf.nn.max_pool,平均池化: tf.nn.avg_pool
pool=tf.nn.max_pool( 输入描述,eg.[ batch , 28,28 (注:行列分辨率 28*28 ) ,6(通道数) ]
池化描述(仅大小),eg.[ 1(注:固定是1) , 2,2(注:行列分辨率 2*2), 1(注:固定是1) ]
池化核滑动步长,eg.[1(注:固定是1) , 2( 注:行步长), 2( 注:列步长) ,1(注:固定是1) ]
padding = ' SAME '
)
三、舍弃(Dropout):
在神经网络的训练过程当中,将一部分神经元按照必定几率从神经网络中暂时舍弃。使用时被舍弃的神经元恢复链接。用于防止过拟合。
tf.nn.dropout( 上层输出,暂时舍弃的几率 )