深度学习笔记3torch实现多层感知器
来源:互联网 发布:java list移除元素 编辑:程序博客网 时间:2024/05/19 14:16
转自:http://www.aichengxu.com/view/2464033
代码地址:https://github.com/vic-w/torch-practice/tree/master/multilayer-perceptro
--网络结构1-3-3-1,隐含层为两层,每层都有3个神经元,输入层和输出层都有一个神经元
model = nn.Sequential()
--model现在是一个容器,要往这个容器中添加神经网络层(输入层、隐含层、输出层)来构成多层感知器(神经网络)
--容器要添加的第一层为输入层,1个输入, 3个输出
model:add(nn.Linear(1,3))
--然后我们在他后面添加一个Sigmoid层,它的节点个数会自动和前一层的输出个数保持一致。这里的--sigmoid函数是用来将数据归到0-1之间的数
--sigmoid函数有个缺点,当远0点数据时,sigmoid会输出为1,导数接近为0
model:add(nn.Sigmoid())
--接下来我们添加第一和第二隐藏层中间的线性连接,输入是3,输出也是3。
model:add(nn.Linear(3,3))
--作用一样
model:add(nn.Sigmoid())
--增加线性层,3个输入一个输出
model:add(nn.Linear(3,1))
--构建多层感知器的完整代码如下
model = nn.Sequential()
model:add(nn.MulConstant(0.1)) --在输入进入之前先乘以0.1,缩小训练值
model:add(nn.Linear(1,3))
model:add(nn.Sigmoid())
model:add(nn.Linear(3,3))
model:add(nn.Sigmoid())
model:add(nn.Linear(3,1))
model:add(nn.MulConstant(50000)) --在输入之后乘以50000,对预测数据的缩小
--默认的权值优化是梯度下降法,训练速度很慢。其实Torch已经给我们提供了各种先进的优化算法,都--放在optim这个库里。我们在文件的头部添加包含optim库
require 'optim'
--模型的参数拿出来看看,w是权值,1x3+3+3x3+3+3x1+1=22,dl_dw是w对loss的偏导,而且这两个--都是引用,也就是值的变化会影响模型的参数
w, dl_dw = model:getParameters()
feval = function(w_new)
if w ~= w_new then w:copy(w_new) end
--导数初始为0
dl_dw:zero()
--与上一篇的作用相同
price_predict = model:forward(month_train)
loss = criterion:forward(price_predict, price_train)
model:backward(month_train, criterion:backward(price_predict, price_train))
--返回损失和梯度
return loss, dl_dw
end
--参数设定,学习率是0.01
params = {
learningRate = 1e-2
}
--迭代3000次,使用改进的梯度下降法
for i=1,3000 do
optim.rprop(feval, w, params)
--每10次动态画图,{}分割每一组数据,{}中的第一个参数是横坐标点,第二个参数是纵坐标点
ifi%10==0 then
gnuplot.plot({month, price}, {month_train:reshape(10),price_predict:reshape(10)})
end
end
- 深度学习笔记3torch实现多层感知器
- torch入门笔记3:用torch实现多层感知器
- 深度学习笔记(三)用Torch实现多层感知器
- 深度学习笔记(三)用Torch实现多层感知器
- 深度学习-多层感知器
- Theano深度学习笔记(三)多层感知器
- 深度学习试验之 多层感知器
- 深度学习框架Tensorflow学习(五)-----多层感知器模型
- 深度学习 —— 多层感知机
- 深度学习笔记(二)用Torch实现线性回归
- 深度学习笔记(二)用Torch实现线性回归
- 深度学习笔记2torch实现线性回归
- 深度学习笔记5torch实现mnist手写数字识别
- Tensorflow实现多层感知器
- TensorFlow实现多层感知器
- TensorFlow实现多层感知器
- 深度学习笔记二:多层感知机(MLP)与神经网络结构
- 深度学习:多层感知机MLP数字识别的代码实现
- Mathematician QSC(欧拉定理+矩阵快速幂)
- mean-shift based tracking回顾
- 数据挖掘
- gdiplus exception
- Intellij idea:Method breakpoints my dramatically slow down debugging
- 深度学习笔记3torch实现多层感知器
- z-index层级在IE中无效
- Node.js学习(二)——Node.js连接mysql数据库
- redis 总结
- union的特性,去重与不去重
- HashMap源码解读
- Storm 简介及组件的基本概念
- centos6.5安装python2.7
- 修改Android EditText光标颜色