使用张量作为输入构建 MLP

我正在创建一个具有一个隐藏层的简单神经网络进行分类。 我的输入数据集已经准备好并以 .t7 文件保存。

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

这是我创建的 MLP 的代码

-------------------------神经网络-------------------------

net = nn.Sequential()
inputs= "?" ; outputs=70; HUs= 25 --参数及问题在于我需要输入 "?" 
--我应该写什么?当时我有上面描述的输入。
        net:add( nn.Linear(inputs, HUs) )
        net:add(nn.ReLU()) -- 激活函数
        net:add( nn.Linear(HUs, outputs) ) -- 70 输出:mpeg7 的类别

----------------------------------------------------------------------
print('NN : ' .. net:__tostring())
-------------------------损失函数-------------------------
criterion=nn.ClassNLLCriterion() -- 负对数似然损失函数
print('Duree NN : ' .. os.time())

---------------------- 加载数据 ---------------------------------
trainset=torch.load('TrainSetTable.t7')

------------------------训练神经网络----------------------

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 的输入是张量?

输入数据(全部)是大小为:1400x1002x3 的张量包含我的形状:我正在处理的数据集为 mpeg7,其中包含 1400 个形状,对于我而言每个形状是一个 1002x3 的矩阵。 input.label 是一个大小为 1400 的张量,其中包含每个形状的相应标签。

我是使用 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
}

在这一行中,我应该写什么?inputs= "?"

点赞
用户12567941
用户12567941

将下面翻译成中文并且保留原本的 markdown 格式

重要的是在您提供任何数据之前定义神经网络的输入层。请注意,NN的输入与样本数(在分类网络中)无关,而完全取决于数据每个样本的配置。

我不熟悉mpeg,但如果mpeg的每个样本都有32x32的维度,则您的输入应为1024(与MNIST数据集的情况相同)

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

2019-12-20 00:11:42