以Tesnor作为输入的MLP构造

问题描述 投票:0回答:1

我正在创建一个具有一个用于分类的隐藏层的简单神经网络。我的输入数据集已准备就绪,并保存在.t7文件中。

input =
{
  data : DoubleTensor - size: 1400x1002x3
  label : DoubleTensor - size: 1400
}

这是我创建的我的MLP的代码

------------------------Neural Netwrok-------------------------

net = nn.Sequential()
inputs= "?" ; outputs=70; HUs= 25 --parameters & the problem is in my input "?" 
--that i am asking for.what shall i write there ? at the time i have the input 
--described above. 
        net:add( nn.Linear(inputs, HUs) ) 
        net:add(nn.ReLU()) -- Activation function
        net:add( nn.Linear(HUs, outputs) ) -- 70 output : classes of mpeg7

----------------------------------------------------------------------
print('NN : ' .. net:__tostring())
-------------------------Loss Function-------------------------
criterion=nn.ClassNLLCriterion() --Negative Log-Likelihood (NLL) Criterion
print('Duree NN : ' .. os.time())


---------------------- Loading Data ---------------------------------
trainset=torch.load('TrainSetTable.t7')

------------------------TRAINING MY NETWORK----------------------

trainer=nn.StochasticGradient(net,criterion)
trainer.learningRate = 0.0005
trainer.maxIteration = 10

print('------------------------------------------------------------------------')
print('training epoch : ' .. trainer.maxIteration .. ', learning rate : ' .. trainer.learningRate .. ' , learning rate decay : ' .. trainer.learningRateDecay)
print('------------------------------------------------------------------------')

trainer:train(trainset)
print('Duree Training : ' .. os.time())

net=net:double()
net:clearState()
torch.save('TrainedNN/NN_Mpeg7_10Epoch.t7',net)
print('Duree sauvegarde : ' .. os.time())

我怎么说我的NN输入是张量?

input.data(All)是一个张量大小:1400x1002x3包含我的形状:我正在处理包含1400个形状的mpeg7数据集,每个形状对我来说都是1002 * 3矩阵。input.label是大小为1400的tesnor,其中包含每种形状的相应标签。

我是对Torch和Lua的新手。但是在上面的示例中,就像上面的代码一样,数据在构造之后被导入并馈送到NN。那么在加载数据之前我应该​​写什么作为NN的输入呢?如何使它“理解”将在以后提供诸如此类的数据:

trainset=torch.load('TrainSetTable.t7')
trainset.data=trainset.data:view(980,1,1002,3)

{One_train_contour = DoubleTensor-1x1002x3}

共计

{
 data(train_contours) : DoubleTensor - 980x1002x3
 label : DoubleTensor - size: 1400
}

我有

{
 data(test_contours) : DoubleTensor - 420x1002x3
 label : DoubleTensor - size: 1400
}

我建议在行中写些什么输入=“?”

machine-learning lua neural-network computer-vision torch
1个回答
1
投票

在馈送任何数据之前定义神经网络输入层是很不明智的。请注意,NN的输入与样本数量无关(在分类网络中),并且仅取决于每个数据样本的配置。

我不熟悉mpeg,但是如果每个mpeg样本的尺寸均为32x32那么您的输入应为1024(MNIST数据集就是这种情况)

来源:http://yann.lecun.com/exdb/mnist/

© www.soinside.com 2019 - 2024. All rights reserved.