Machine learning 以Tesnor作为输入的MLP构造

Machine learning 以Tesnor作为输入的MLP构造,machine-learning,lua,neural-network,computer-vision,torch,Machine Learning,Lua,Neural Network,Computer Vision,Torch,我正在创建一个简单的神经网络,其中有一个隐藏层用于分类。 我的输入数据集已准备就绪并保存在.t7文件中 input = { data : DoubleTensor - size: 1400x1002x3 label : DoubleTensor - size: 1400 } 这是我创建的MLP的代码 ------------------------Neural Netwrok------------------------- net = nn.Sequential() inputs=

我正在创建一个简单的神经网络,其中有一个隐藏层用于分类。 我的输入数据集已准备就绪并保存在.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,包含每个形状的相应标签

我是新来的火炬手和卢阿。。但是在我上面看到的示例中,数据在构建后被导入并馈送到NN。那么在加载数据之前,我应该写什么作为NN的输入呢?如何让它“理解”我以后将向它提供这样的数据:

trainset=torch.load('TrainSetTable.t7')
trainset.data=trainset.data:view(980,1,1002,3)
{一列等高线=双张量-1x1002x3}

总共

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

{
 data(test_contours) : DoubleTensor - 420x1002x3
 label : DoubleTensor - size: 1400
}
建议我在这行写什么
inputs=“?”

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

我不熟悉mpeg,但如果mpeg的每个样本的维度为32x32 那么您的输入应该是1024(就像MNIST数据集一样)

资料来源: