我是靠谱客的博主 清爽狗,最近开发中收集的这篇文章主要介绍深度学习CNN,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

CNN经常被用于图像识别,语音识别等场景;在图像识别中,它的主要用于特征提取,还可用于关键点定位以此来判断人的各种动作。

与神经网络不同的是,CNN多了卷积层和池化层,卷积层用于提取特征,池化层用于特征浓缩;除此之外,在CNN中也有一个关于“深度”的概念,可以将CNN看成有三维形状(3个通道)的神经网络。

例如输入层输入一个32*32*3(h*w*通道)个像素点的图片,32*32表示图片的像素点,3表示输入图片是彩色3维,即RGB=3,卷积层在提取特征时,首先要设置n个filter用于卷积计算,此时filter的维度要和图片的维度保持一致,例如filter=5*5*3;卷积计算完成后将会得到n个特征图(设置了几个filter就会得到几个特征图)

在卷积计算前,可以设置边界填充pad,例如pad=1,就是在原始输入矩阵加上一圈0元素,这样做是为了调整输出的大小,防止输出的特征图只有1行1列而无法进行下一次的卷积运算。在卷积计算的过程中,3维的像素点矩阵分别与3维的filter矩阵卷积计算,计算完成后的三个值相加得到最终该区域的卷积和;除此之外还要设置滑动步长stride的值,它表示下一与filter矩阵计算的区域应要移动的距离;计算完成后将会得到n维的特征图,每一维的特征图都是3个通道输入矩阵分别与三维filter矩阵卷积计算求和。

卷积完成后的特征图的长宽:

h1=(h0-filter_size+2pad)/stride + 1;

w1=(w0-filter_size+2pad)/stride + 1;

池化层用于将特征图的特征浓缩,主要方式有mean pooling,max pooling,这方面知识比较简单,也称下采样。

权值共享:假如每个神经元都相互连接(全连接),那么需要设置的参数太过庞大,通过权值共享,每一个与filter计算的区域都共享权值,那么只需考虑一个区域需要设置的参数,filter矩阵的长宽深度的乘积,即5*5*3个参数。

最后

以上就是清爽狗为你收集整理的深度学习CNN的全部内容,希望文章能够帮你解决深度学习CNN所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部