卷积神经网络在火炬中。训练网络时出错

迷笛

我正在尝试基于以下教程建立卷积神经网络:

https://github.com/torch/tutorials/tree/master/2_supervised

问题是我的图像与本教程中使用的图像尺寸不同。(3x200x200)。我也只有两节课。

以下是我所做的更改:

更改要加载到1_data.lua中的数据集。

nfeats = 3
width = 200
height = 200
ninputs = nfeats*width*height

nclass,noutputs

在3_loss.lua和4_train.lua中。

我的模型与本教程中训练的模型相同。为了方便起见,我将代码放在下面:

  model = nn.Sequential()

  -- stage 1 : filter bank -> squashing -> L2 pooling -> normalization
  model:add(nn.SpatialConvolutionMM(nfeats, nstates[1], filtsize, filtsize))
  model:add(nn.Tanh())
  model:add(nn.SpatialLPPooling(nstates[1],2,poolsize,poolsize,poolsize,poolsize))
  model:add(nn.SpatialSubtractiveNormalization(nstates[1], normkernel))

  -- stage 2 : filter bank -> squashing -> L2 pooling -> normalization
  model:add(nn.SpatialConvolutionMM(nstates[1], nstates[2], filtsize, filtsize))
  model:add(nn.Tanh())
  model:add(nn.SpatialLPPooling(nstates[2],2,poolsize,poolsize,poolsize,poolsize))
  model:add(nn.SpatialSubtractiveNormalization(nstates[2], normkernel))

  -- stage 3 : standard 2-layer neural network
  model:add(nn.Reshape(nstates[2]*filtsize*filtsize))
  model:add(nn.Linear(nstates[2]*filtsize*filtsize, nstates[3]))
  model:add(nn.Tanh())
  model:add(nn.Linear(nstates[3], noutputs))

运行doall.lua文件时出现以下错误:

 ==> online epoch # 1 [batchSize = 1]   
 /home/torch/install/share/lua/5.1/torch/Tensor.lua:462: Wrong size for view. Input size: 64x47x47. Output size: 64x1600
 stack traceback:
 [C]: in function 'error'
 /home/torch/install/share/lua/5.1/torch/Tensor.lua:462: in function 'view'
 /home/torch/install/share/lua/5.1/nn/Reshape.lua:49: in function 'updateOutput'
 /home/torch/install/share/lua/5.1/nn/Sequential.lua:29: in function 'forward'
 4_train.lua:160: in function 'opfunc'
 /home/torch/install/share/lua/5.1/optim/sgd.lua:43: in function 'optimMethod'
 4_train.lua:184: in function 'train'
 doall.lua:77: in main chunk
 [C]: in function 'dofile'
 [string "_RESULT={dofile('doall.lua' )}"]:1: in main chunk
 [C]: in function 'xpcall'
 /home/torch/install/share/lua/5.1/trepl/init.lua:630: in function 'repl'
 .../torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:185: in main chunk
 [C]: at 0x00406670 

我已经在这个问题上停留了一天多了。请帮忙。

代尔泰尔

问题在于本教程中的卷积神经网络已经可以在32x32像素固定大小输入分辨率工作

在2个卷积/池化层之后,您立即获得了5x5分辨率的64个特征图。对于以下完全连接的层,这将提供64x5x5 = 1600个元素的输入。

如您在本教程中所看到的,有一个专用的整形操作可将3D输入张量转换为具有1,600个元素的1D张量:

-- nstates[2]*filtsize*filtsize = 64x5x5 = 1,600
model:add(nn.Reshape(nstates[2]*filtsize*filtsize))

当使用更高分辨率的输入时,会生成更高分辨率的输出特征图,此处200x200像素的输入将提供尺寸为47x47的64个输出特征图。这就是为什么您会收到此错误的尺寸错误的原因。

因此,您需要适应重塑并相应地遵循线性层:

model:add(nn.Reshape(nstates[2]*47*47))
model:add(nn.Linear(nstates[2]*47*47, nstates[3]))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Theano中卷积神经网络的无监督预训练

来自分类Dev

卷积神经网络中的训练和测试

来自分类Dev

预训练卷积神经网络的微调

来自分类Dev

拟合 3D 卷积神经网络时出错

来自分类Dev

在 tensorflow gpu 中训练卷积神经网络时“Python 已停止工作”

来自分类Dev

卷积神经网络中的深度解释

来自分类Dev

改变卷积神经网络中的参数

来自分类Dev

卷积神经网络中的恒定偏差

来自分类Dev

加载不同大小的图像以训练卷积神经网络

来自分类Dev

组合卷积神经网络

来自分类Dev

卷积神经网络损失

来自分类Dev

如何将.csv训练数据提供给mxnet中的卷积神经网络?

来自分类Dev

尝试构建神经网络时出错

来自分类Dev

深度信念网络与卷积神经网络

来自分类Dev

神经网络在线训练

来自分类Dev

卷积神经网络中权重和输出的值

来自分类Dev

卷积神经网络中特征图的数量

来自分类Dev

在卷积神经网络中设置学习率

来自分类Dev

卷积神经网络中超参数的优化

来自分类Dev

卷积神经网络中权重和输出的值

来自分类Dev

卷积神经网络中的特征图过滤器

来自分类Dev

你如何计算卷积神经网络中的偏差梯度?

来自分类Dev

卷积深度信念网络(CDBN)与卷积神经网络(CNN)

来自分类Dev

训练神经网络时,哪些层应该经历“丢失”?

来自分类Dev

训练神经网络时,哪些层应该经历“丢失”?

来自分类Dev

可视化火炬中的神经网络层,无须火炬

来自分类Dev

可视化火炬中的神经网络层,无须火炬

来自分类Dev

难以理解卷积神经网络

来自分类Dev

卷积神经网络(CNN)用于音频