Torch7模型训练

Torch7搭建卷积神经网络详细教程已经详细的介绍啦Module模块,这里再次基础上再给出一些上Container、 Transfer Functions Layers和 Simple Layers模块的理解。并在后面给出一些简单的模型训练方法。下述程序在itorch qtconsole下运行。

上一篇博文讲到Module主要有四个函数(详细见Torch7搭建卷积神经网络详细教程),但是注意以下几点:forward函数的input必须和backward的函数的input一致,否则梯度更新会有问题;forward会调用updateOutput(input), 而backward会调用[gradInput] ;updateGradInput (input, gradOutput)和accGradParameters(input, gradOutput) ;高级训练方式只要重载updateOutput和updateGradInput这两个函数,内部参数会自动改变。

Container主要是为了复杂的神经网络,包含 Sequential, Parallel, Concat 三个方法,并且重新实现了Module类的方法,主要函数有以下: 

@ add(module) 
@ get(index) 
@ size() 
 
@ remove(index) 
@ insert (module, [index] )

其用法在上一节搭建卷积神经网络的实例中已经给出,即生成是用一个Sequential,然后不断add(module),module有simple layers和卷积层。

Transfer Functions Layers就是激活函数,可以加入层模块或激活函数的层模块,最后加上criterion层模块。主要的激活函数有SoftMax, SoftMin, SoftPlus, LogSigmoid, LogSoftMax, Sigmoid, Tanh, ReLU, PReLU, ELU, LeakyReLU..........。简单的拿Sigmoid举个例子吧,如下所示。



Simple Layers有很多,一些是提供仿射变换的,一些是进行Tensor method的。具有参数的modules有: Linear ,Add ,Mul ,CMul 等;进行数学运算的有:Max, Min, Exp, Mean, Log, Abs, MM(矩阵乘),Normalize(正则化);进行基本Tensor运算的 View ,Transpose 。

上述函数的具体使用方法可以看Torch7的官方API以及帮助文档。接下来仅介绍一些模型训练所需要的关键函数。

将image包导入当前运行环境,随机生成一张1通道32x32的彩色图像,如下


上一节我们构建的卷积神经网络如下(参数稍微有调整)。


用上一节建立好的神经网络net调用forward()方法输入随即生成的图片得到输出的结果,如打印出来的形式,net最后是10个输出节点,这里输出了10个值(BP算法之前需要做的运算)。如下所示。

 

然后在此基础进行BP算法更新权值,如下所示。其中,zeroGradparameters是将网络中的梯度缓存设置为零;backword函数是进行后向传播训练的算法,第一个蚕食为输入的图像,与forward中的输入一致,不然后报错,第二个参数为导师信号,即图像的真实分类标签。 

前向传播和反向传播的基本过程就是上面,当然到这还不能我们的网络,还没有定义损失函数,下面介绍损失函数的基本操作。


损失函数的实现也有正向和方向两个操作,不同的神经网络用BP算法求解的思想是一样的,但是定义的网络不同,其具体的损失度量不同。就这个例子来说我们定义是适合对分类的损失函数,调用他的前向传播方法并输入的参数分别为预测的类训练样本所属的类。 


执行完损失函数的前向操作后,再进行反向操作,backward()方法里面的参数同forward()函数里的参数,返回值是损失函数的梯度;调用神经网络net的backward()方法输入训练集和其对应的损失函数梯度。然后,使用神经网络net的updateParameters()更新权重,该方法的输入值为学习率,即完成了训练。


已标记关键词 清除标记
<p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <span style="color:#E53333;"><strong>【课程介绍】</strong></span>  </p> <p style="text-align:left;">      Pytorch项目实战 垃圾分类 课程从实战的角度出发,基于真实数据集与实际业务需求,结合当下最新话题-垃圾分类问题为实际业务出发点,介绍最前沿的深度学习解决方案。 </p> <p style="text-align:left;">     从0到1讲解如何场景业务分析、进行数据处理,模型训练与调优,最后进行测试与结果展示分析。全程实战操作,以最接地气的方式详解每一步流程与解决方案。 </p> <p style="text-align:left;">     课程结合当下深度学习热门领域,尤其是基于facebook 开源分类神器ResNext101网络架构,对网络架构进行调整,以计算机视觉为核心讲解各大网络的应用于实战方法,适合快速入门与进阶提升。 </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程要求】</span></strong> </p> <p style="text-align:left;"> (1)开发环境:python版本:Python3.7+;<span style="color:#E53333;"> torch 版本:1.2.0+; torchvision版本:0.4.0+</span> </p> <p style="text-align:left;"> (2)开发工具:Pycharm; </p> <p style="text-align:left;"> (3)学员基础:需要一定的Python基础,及深度学习基础; </p> <p style="text-align:left;"> (4)学员收货:掌握最新科技图像分类关键技术; </p> <p style="text-align:left;"> (5)学员资料:内含完整程序源码和数据集; </p> <p style="text-align:left;"> (6)课程亮点:专题技术,完整案例,全程实战操作,徒手撸代码 </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <span style="color:#E53333;"><strong>【课程特色】</strong></span> </p> 阵容强大 <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> 讲师一直从事与一线项目开发,高级算法专家,一直从事于图像、NLP、个性化推荐系统热门技术领域。 </p> <p style="text-align:left;"> 仅跟前沿 </p> <p style="text-align:left;"> 基于当前热门讨论话题:垃圾分类,课程采用学术届和工业届最新前沿技术知识要点。 </p> <p style="text-align:left;"> 实战为先 </p> <p style="text-align:left;"> 根据实际深度学习工业场景-垃圾分类,从产品需求、产品设计和方案设计、产品技术功能实现、模型上线部署。精心设计工业实战项目 </p> <p style="text-align:left;"> 保障效果 </p> <p style="text-align:left;"> 项目实战方向包含了学术届和工业届最前沿技术要点 </p> <p style="text-align:left;"> 项目包装简历优化 </p> <p style="text-align:left;"> 课程内垃圾分类图像实战项目完成后可以直接优化到简历中 </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程思维导图】</span></strong> </p> <p style="text-align:left;"> <img src="https://img-bss.csdn.net/201912081323318969.png" alt="" /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <strong><span style="color:#E53333;">【课程实战案例】</span></strong> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <img src="https://img-bss.csdn.net/201912081326184463.png" alt="" /> </p> <p style="text-align:left;"> <br /> </p> <p style="text-align:left;"> <br /> </p>
相关推荐
©️2020 CSDN 皮肤主题: 酷酷鲨 设计师:CSDN官方博客 返回首页