lenet5卷积神经网络_tensorflow图像识别入门实战:使用LeNet5模型实现猫狗分类

b4cfaafe7280d2886cb3766627da5b69.gif

LeNet5介绍

LeNet-5是一种高效的卷积神经网络,在论文《Gradient-Based Learning Applied to Document Recognition》中 有详细的解释,它在大家熟知的手写数字识别项目中它得到广泛地使用。该网络一共有7层,依次为:卷积层、池化层、卷积层、池化层、全连接层、全连接层(输出层)。

550e2542cd4228906e99784b33bac305.png

分类训练的准备工作

  • 准备数据集
  • 设计网络结构

数据集的准备杰瑞在前一篇文章中已经讲过了,所以在本篇文章中就不再阐述了,今天主要写一下网络结构的设计。今天教程中所使用的模型是LeNet-5模型,如上图,想必大家已经知道该网络的大概结构了吧?现在要做的就是用python代码实现上图中的网络结构。

主要函数:

tf.nn.conv2d()

tf.nn.max_pool()

tf.nn.lrn()

tf.nn.conv2d()函数主要用来进行卷积操作,tf.nn.max_pool()函数主要用来进行池化操作,tf.nn.lrn()用来对数据进行归一化。

代码实践

01862a74fa0b9f46ad516cc544f3e3bb.png

tf.nn.conv2d()的参数:input, filter

杰瑞一个batch的数据形状为[?, 64*64],所以在数据进入网络之前必须要将数据形状改变成[?, 64, 64, 1]。因为tf.nn.conv2d()函数第一个参数input需要[batch_size,图片高度,图片宽度,图片深度]形状的tensor。

707915404b89296e571430d4fa003be6.png

filter就是我们用来进行卷积操作的卷积核,实际上它也是一个tensor,我们通过tf.Variable()函数来定义它,以下是定义卷积核的代码:

7e64b3f63e4cb8c061f7d3917e7c2cc4.png

卷积完成之后我们就可以与偏执量一起求和了,最后经过一个激活函数Relu作为池化层的输入。

d8bb8d64025d052682a8fa95d5e4df95.png

池化层

池化层我们通过tf.nn.max_pool()函数来实现,第一个参数就是需要池化的输入,第二个参数是池化窗口的大小,这里设置为[1, 3, 3, 1],第三个参数是步长,这里设置为[1, 1, 1, 1]。

8ec615646878679773d5485157df1a5e.png

池化过后我们需要进行局部响应归一化,把反映响应比较大的值变得相对更大,并抑制其他反馈较小的神经元,说白了就是将明显“特征”放大,不明显“特征”减小。

剩下的5层的创建和上面两层的创建步骤差不多,所以就不重复解释了,直接把代码贴上来:

0e3e10937bf78183e42da520a626834e.png
29278306a412ccda7d9929c191104249.png
97ed22cab7eafd6ce8cf1fdc051c4f3c.png

以上图片中的代码按顺序排列构成LeNet-5网络结构。

损失函数与优化方法

杰瑞使用tf.nn.softmax_cross_entropy_with_logits()方法计算交叉熵,并使用tf.train.AdamOptimizer()方法实现梯度下降较小损失值。

00b53880e9eb0530036e2f7682010671.png

开启会话进行训练

577ec771d163e88f134fa8abc0dd51b2.png

这里我们直接开启会话进行训练,在下图中可以看到损失值的变化:

b55b403807b42fe5d13d9f1b4e6079f0.png

关注《高手杰瑞》,每天更新哦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值