pytorch入门教程 | 第三章:构造一个小型CNN

学过深度卷积网络的应该都非常熟悉这张demo图(LeNet):

此图是LeNet的结构图,把32*32的手写英文字符图片作为输入,训练出一个对于手写字符的分类

我们训练这个网络必须经过4步:

第一步:将输入input向前传播,进行运算后得到输出output

第二步:将output再输入loss函数,计算loss值(是个标量)

第三步:将梯度反向传播到每个参数

第四步:利用下面公式进行权重更新

新权重w = 旧权重w + 学习速率? x 梯度向量g

先不管怎么训练,我们必须先构建出一个CNN网络,很快我们写了一段关于这个LeNet的代码,并进行注释:

1至37行定义了一个卷积神经网络,40行以下是为了观察该网络需要训练的参数数量。

运行完该代码我们得到下图

该网络有5层神经元,第一层是1到6的卷积层,第二层是6到16的卷积层,第三层到第5层均为全连接层。第一层的参数计算是6x1x5x5=150,当然别忘了还有bias=6,所以第一层的参数总量是150+6=156。以此类推,总参数和为61706个

注意:torch.nn只接受mini-batch的输入,也就是说我们输入的时候是必须是好几张图片同时输入。 例如:nn. Conv2d 允许输入4维的Tensor:n个样本 x n个色彩频道 x 高度 x 宽度

原文发布于微信公众号 - 人工智能LeadAI(atleadai)

原文发表时间:2017-09-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏机器学习算法全栈工程师

基于深度学习的图像语义分割算法综述

本文翻译自An overview of semantic image segmentation,原作者保留版权。

741
来自专栏计算机视觉战队

在局部误差边界条件下的随机子梯度方法的加速

今天我们主要针对Stochastic Subgradient Methods来进行详细讲解,如果有兴趣的读者,进认真和我们一起阅读下去,记得拿好纸和笔。

1023
来自专栏AI科技大本营的专栏

笔记 |《深度学习原理与TensorFlow实践》学习笔记(三)

作者 | 王清 目录 图像识别的经典课题 计算机视觉 图像识别课题 卷积神经网络原理 前深度学习时代 卷积操作Convolution 池化Pooling ReL...

3315
来自专栏人工智能LeadAI

基于深度卷积神经网络进行人脸识别的原理是什么?

我这里简单讲下OpenFace中实现人脸识别的pipeline,这个pipeline可以看做是使用深度卷积网络处理人脸问题的一个基本框架,很有学习价值。 它的...

2918
来自专栏机器学习入门

深度学习系列(1):感知机

深度学习系列(1):感知机 前言 小论文总算告一段落了,近期开始深度学习了,跟着Hinton神经网络公开课边看边总结。视频参考链接如下:https://www....

2028
来自专栏人工智能

通过部分感知深度卷积网络进行人脸特征点定位

人脸特征点定位是一个非常具有挑战性的研究课题。由于纹理和形状的不同,不同人脸特征点的定位精度差异很大。但大多数现有的方法不能考虑特征点的部分位置。 为了解决这个...

19410
来自专栏林欣哲

10分钟看懂Batch Normalization的好处

Batch normalization是一个用于优化训练神经网络的技巧。具备有以下几个优点 1. 训练的更快 因为在每一轮训练中的前向传播和反响传播的额外计算会...

3586
来自专栏计算机视觉战队

通过部分感知深度卷积网络进行人脸特征点定位

人脸特征点定位是一个非常具有挑战性的研究课题。由于纹理和形状的不同,不同人脸特征点的定位精度差异很大。但大多数现有的方法不能考虑特征点的部分位置。 为了解决这个...

2846
来自专栏机器学习算法全栈工程师

基于深度学习的图像语义分割算法综述

本文翻译自An overview of semantic image segmentation,原作者保留版权。

1283
来自专栏AI研习社

教程 | Hinton 机器学习视频中文版:感知器的几何空间解析(2.3)

本套课程中,Hinton 重点介绍了人工神经网络在语音识别和物体识别、图像分割、建模语言和人类运动等过程中的应用,及其在机器学习中发挥的作用。与吴恩达的《Mac...

2817

扫码关注云+社区