Tensorflow(三)训练一个简单卷积神经网络

本文是吴恩达课程的编程练习,介绍了如何使用Tensorflow训练一个简单的卷积神经网络(CNN)来识别手势。内容涵盖CNN的基本组成部分——卷积层、池化层和全连接层,以及在Tensorflow中实现CNN的代码示例。
摘要由CSDN通过智能技术生成

这是吴恩达老师第四课第一周的编程练习,题目是分析图片中手势得到手所表示的数字。

数据集我传到github上,可以下载https://github.com/penguin219/WU_Lesson4_week1

特别要注意的是,如果你使用的是新版本的tensorflow,很有可能得到的结果和Coursera上的有所不同!

 

1. 先简单介绍一个CNN(直接看代码的请往下翻)

CNN全程是Convolutional Neural Networks,它更加适用于computer vision类的应用,这是因为CNN处理图像的效果要比神经网络的处理效果更好,CNN有三个基本组成部分,卷积层,池化层和全连接层

 

1.1 卷积层

卷积层中有个很重要的概念,什么是卷积?理解了卷积对于池化层也会很好理解。为了方便说明,举个简单的例子。假设现在有一张(6*6)的灰度图像,要对它进行卷积操作,需要用到过滤器 Filter,这里我们用(3*3)的过滤器对这张灰度图像进行卷积,因为它们都是矩阵,所以记 A(6*6),B(3*3)

首先将(3*3)叠放在(6*6)的图像上,也就是A[0][0] 与B[0][0]是对应的,A[2][2] 与 B[2][2]对应,这里手画一下会更好理解,下一步要做的事情就是把对应位置的数字相乘,将得到的9个乘积再相加得到和,这里用sum1记录下来。

接着把B向右移动固定的单位,移动的单位数目,就称之为 步幅 Stride,我们将步幅设置为1,也就是向右移动1个单位,那么现在  A[0][1]对应B[0][0],继续上面的操作,对应位置相乘再相加得到和,记为sum2。

不难看出,B只能移动三次,加上初始位置得到的结果,一共得到4个和值,这四个值就作为完成卷积操作以后得到的矩阵的第一行,那么推测一下,第二行形式也是类似的,计算第二行时,B[0][0]对应的值就是A[1][0],然后再向右移动,得到第二行的所有值。B也只能向下移动三次,加上初始位置,也就是一共有4次,那么最后的结果就是一个(4*4)的矩阵。

这样就完成了一次卷积操作。

总结一下,一次卷积操作需要用到 Filter,也就是后面文中提到的参数,设置Stride,关于Filter再多说几句,一般来说,filter的选择可以是固定的,比如说很有名的sobel filter,scharr filter,不同的过滤器可以提取不同的特征,那么我们也可以将filter设置为随机的参数,通过喂给模型数据来训练这些参数,使得参数更好的符合我们的需求。

完成卷积的操作会使得图片缩小,并且存在一个问题,就是边缘的 像素点只会进行一次卷积操作,而中间的会进行很多次,就会在一定程度上降低边界信息的参考程度。解决办法就是padding,padding的意思是填充,在原图像的周围填充像素点,设置值为0,这样多添加的点也不会对结果造成影响。padding有两种形式,第一是Valid卷积,也就是不添加,p为0,第二种是SAME卷积,意思是卷积后的结果和原始图像尺寸是一样的,p=(f-1)/ 2。

最后要说的是,原始图像大小如果为(n*n),过滤器大小为(f*f),stride的值为s,padding的值为p

那么卷积的结果为(m*m)其中 m=(n+2p-f)/s +1 ,另m = n 就能解出上面p的值了

 

上面举的例子是灰度图像,是二维的,而我们一般使用的都是RGB图像,是三维。原始图像是几维对应的filter也是几维的,而filter的个数决定了卷积后得到图像的维度,保持一致!

 

 

1.2 池化层

池化层可对提取到的特征信息进行降维,使特征图变小,进行特征压缩,提取主要特征,简化网络计算复杂度并在一定程度上避免过拟合的出现。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值