Torch7学习笔记[2] ---神经网络的主体框架

原创 2016年08月30日 22:06:44

参考资料:
https://github.com/soumith/cvpr2015/blob/master/Deep%20Learning%20with%20Torch.ipynb
将整个框架分为以下几个模块:
1、options设置
2、train、test预处理以及读取
3、net结构以及criterion建立
4、train设置
5、test设置
6、保存中间结果以及断点开始(待完善)
y以上每个功能模块单独由一个文件完成,整个结构分为7个文件
main.lua
opt.lua
dataloder.lua
model.lua
train.lua
test.lua
checkpont.lua(待完善)

require 'torch'
require 'nn'
require 'optim'

local DataLoder = require 'dataloder'  --load the dataloder.lua
local opts = require 'opt'
local Model = require 'model'
local Test = require 'test'
local checkpoints = require 'checkpoint'
local Trainer = require 'train'

torch.setdefaulttensortype = ('torch.FloatTensor')  --
torch.setnumthreads(1)
torch.manualSeed(opt.manualSeed)
cutorch.manualSeedAll(opt.manualSeed)

local opt = opts.parse(arg)  --load the options
local trainset,testset = DataLoder.creat(opt) --load the dataset

local model,criterion = Model.setup(opt) --load the model,criterion
if(opt.type == 'cuda')   then  --turn on gpu:model-criterion-data-label
    model = model:cuda() 
    criterion = criterion:cuda()
    trainset.data = trainset.data:cuda()
    trainset.label = trainset.label:cuda()
    testset.data = testset.data:cuda()
    testset.label = testset.label:cuda()
end

function trainset:size() --prepare for training 
    return self.data:size(1) 
end
local trainer = Trainer(model,criterion,opt)

bestModel = false
for epoch = 1,opt.max_epoch do
    local current_error = trainer:train(epoch,trainset)
    --save the current station
    --checkpoints.save(epoch, model, trainer.optimState, bestModel, opt)
end

local correct_rate = Test.run(opt,testset,model)
print(correct_rate)

运行程序时,直接在文件所在目录终端执行:th main.lua 即可运行程序。若需改变options,例如gpu运行:th main.lua –type cuda

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Torch7学习(四)——学习神经网络包的用法(2)

总说上篇博客已经初步介绍了Module类。这里将更加仔细的介绍。并且还将介绍Container, Transfer Functions Layers和 Simple Layers模块。Module主要...

Torch7学习(三)——学习神经网络包的用法(1)

torch7框架之神经网络训练

Torch7学习(六)——学习神经网络包的用法(4)——利用optim进行训练

总说这篇博客是本系列的最后一篇,着重讲如何利用optim包进行自动挡训练。-- standard training code -- Here let's train XOR net.require '...

TensorFlow学习笔记(7)--实现卷积神经网络(同(5),不同的程序风格)

实现卷积神经网络,MNIST数据集
  • lwplwf
  • lwplwf
  • 2017-03-15 20:27
  • 17687

python数据分析与挖掘学习笔记(7)-交通路标自动识别实战与神经网络算法

这一节主要涉及神经网络算法,由此展开交通路标自动识别的应用。 交通路标的自动识别其实就是一个分类问题。对于分类问题,我们有很多的方法来实现,比如KNN,贝叶斯等。关键点在于图片转文本。本节采用人工神经...

[机器学习笔记]Note7--神经网络:学习

继续是机器学习课程的笔记,这节课会继续介绍神经网络的内容,上一节主要是基本的介绍,以及模型表示,而本节会介绍代价函数,反向传播算法等
  • lc013
  • lc013
  • 2016-07-01 19:24
  • 749

深度学习框架Caffe学习笔记(8)-BP神经网络算法

BP神经网络的计算流程为,先根据输入数据各个节点的权重偏向,计算出神经网络的输出(前向传播计算),通过计算输出与理想输出比较得到误差,再根据误差函数再各个节点的偏导数计算出各权重、偏向的调整量(反向传...

正则化最小二乘法——神经网络与机器学习笔记2

参考Andrew Ng 公开课的推导一些公式trA=∑ni=1AiitrA=\sum_{i=1}^nA_{ii} trAB=trBAtrAB=trBA trABC=trCBA=trBCAtrABC...

深度卷积神经网络学习笔记2:步长不为1的卷积前向传播和反向传播

卷积层的维度计算        假设卷积层的输入大小x*x为5*5,卷积核大小k*k为3*3,步长stride为2,假设不填充,输出维度将会是(x-k)/2+1,即为2*2;如果步长为1,那么输出将会...
  • meadl
  • meadl
  • 2017-03-31 18:50
  • 1539

CNN卷积神经网络学习笔记2:网络结构

这篇笔记中,通过一个简单的CNN的例子,梳理一下CNN的网络结构的细节。 以下是一个6层的CNN网络,我们输入的是一张大小为28*28的图片。 需要注意的有: 1,这里输入的是一张图片,如果我们输入了...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)