神经网络 - 如何处理IRIS输入向量?

时间:2016-01-22 12:43:48

标签: machine-learning deep-learning

我刚刚开始掌握反向传播和MLP网络的想法。我困惑的是输入向量如何被钳位"在输入层?

例如,让我们采用模拟IRIS数据集 - :

[5.0,4.4,2.7,1.5,0],
[3.0,3.6,1.8,1.7,1],
[2.0,1.2,3.3.4.2,2]

这些输入是否在输入层中全部输入?或者他们一个接一个地喂食。

我的意思是在第一次迭代中输入的第一个输入矢量像 - :

[5.0,4.4,2.7,1.5,1]

然后计算错误,然后发送下一个输入向量,即

[3.0,3.6,1.8,1.7,2]

或者它们都是一起发送的 - :

[[A vector of all petal lengths],[A vector of all sepal lengths],etc]

我知道不同的框架可以区别对待这些框架,但可以随意评论任何流行的深度学习框架如何做到这一点。我自己使用DeepLearning4J。

感谢。

1 个答案:

答案 0 :(得分:0)

输入向量通常以批次的形式输入神经网络。这些批次包含的载体数量取决于批量大小。例如。批量大小为128意味着您将128个输入向量输入网络(如果没有剩下的那么多则输入更少),然后更新权重/参数。 iris tutorial of Deeplearning4J似乎使用批量大小为150:int batchSize = 150;及更高版本DataSetIterator iter = new IrisDataSetIterator(batchSize, numSamples);

请注意,还有一个批处理模式用于更新神经网络的权重,这一点令人困惑 - 只有在所有输入向量之后才更新权重进入网络。然而,批处理模式基本上从未使用过。