torch7神经网络训练错误。
2015-3-25 14:3:27
收藏:0
阅读:70
评论:1
我正在尝试在torch7中实现一个神经网络示例,我的数据以以下形式存储在文本文件中[19列x10000行]:
11 38 20 44 11 38 21 44 29 42 30 44 34 38 6 34 45 42 1
11 38 20 44 11 38 27 44 31 42 18 44 34 38 6 34 45 42 2
6 42 20 44 11 38 21 44 29 42 30 44 34 38 6 34 45 42 3
...
34 40 20 44 11 38 21 44 29 38 30 38 34 45 38 0 0 0 100
...
其中最后一列有标签[100个标签]。
使用以下代码:
require 'nn'
-- ======================================= --
-- Start loading data
-- ======================================= --
print '[INFO] Loading data..'
dataset = {}
function dataset:size() return 10000 end
local lin = 1
train_file = 'train_10000.t7'
local file = io.open(train_file)
if file then
for line in file:lines() do
local input = torch.Tensor(18);
local output = torch.Tensor(1);
local X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18, Y = unpack(line:split(" "))
input = {X1, X2, X3, X4, X5, X6, X7, X8, X9, X10, X11, X12, X13, X14, X15, X16, X17, X18}
output = Y
dataset[lin] = {input, output}
lin = lin +1
end
end
-- ======================================= --
-- Create NN
-- ======================================= --
print '[INFO] Creating NN..'
mlp = nn.Sequential(); -- make a multi-layer perceptron
inputs = 18; outputs = 1; HUs = 25; -- parameters
mlp:add(nn.Linear(inputs, HUs))
mlp:add(nn.Tanh())
mlp:add(nn.Linear(HUs, outputs))
-- ======================================= --
-- MSE and Training
-- ======================================= --
print '[INFO] MSE and train NN..'
criterion = nn.MSECriterion()
trainer = nn.StochasticGradient(mlp, criterion)
trainer.learningRate = 0.01
trainer:train(dataset)
我得到了以下错误信息:
# StochasticGradient: training
/home/yosaikan/torch/install/share/lua/5.1/nn/Linear.lua:34: attempt to call method 'dim' (a nil value)
stack traceback:
/home/yosaikan/torch/install/share/lua/5.1/nn/Linear.lua:34: in function 'updateOutput'
...e/yosaikan/torch/install/share/lua/5.1/nn/Sequential.lua:25: in function 'forward'
...an/torch/install/share/lua/5.1/nn/StochasticGradient.lua:35: in function 'train'
iparseSchemeConversion.lua:45: in main chunk
[C]: in function 'f'
[string "local f = function() return dofile 'iparseSch..."]:1: in main chunk
[C]: in function 'xpcall'
/home/yosaikan/torch/install/share/lua/5.1/itorch/main.lua:174: in function </home/yosaikan/torch/install/share/lua/5.1/itorch/main.lua:140>
/home/yosaikan/torch/install/share/lua/5.1/lzmq/poller.lua:75: in function 'poll'
.../yosaikan/torch/install/share/lua/5.1/lzmq/impl/loop.lua:307: in function 'poll'
.../yosaikan/torch/install/share/lua/5.1/lzmq/impl/loop.lua:325: in function 'sleep_ex'
.../yosaikan/torch/install/share/lua/5.1/lzmq/impl/loop.lua:370: in function 'start'
/home/yosaikan/torch/install/share/lua/5.1/itorch/main.lua:341: in main chunk
[C]: in function 'require'
(command line):1: in main chunk
[C]: at 0x00405980
请问你能帮我吗?
谢谢。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
我收到了这个错误信息[...],你能帮我吗?
在您的数据集中,
input和output应该是Tensor类型(这里的input是一个普通的 Lua 表,这就是为什么您会遇到这个错误,即没有dim方法)。为了简化数据加载,建议您使用 csv 解析器,例如您可以使用 csv2tensor 将数据加载到
Tensor中。首先,请确保向文件中添加标题(作为第一行),如下所示:
x001,x002,x003,x004,x005,x006,x007,x008,x009,x010,x011,x012,x013,x014,x015,x016,x017,x018,label然后按照以下方式加载数据:
local csv2tensor = require 'csv2tensor' local inputs = csv2tensor.load("data.csv", {exclude={"label"}}) local labels = csv2tensor.load("data.csv", {include={"label"}}) local dataset = {} for i=1,inputs:size(1) do dataset[i] = {inputs[i], torch.Tensor{labels[i]}} end dataset.size = function(self) return inputs:size(1) end然后使用此数据集进行训练:
-- ... trainer:train(dataset)