我刚刚开始掌握反向传播和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。
感谢。
答案 0 :(得分:0)
输入向量通常以批次的形式输入神经网络。这些批次包含的载体数量取决于批量大小。例如。批量大小为128意味着您将128个输入向量输入网络(如果没有剩下的那么多则输入更少),然后更新权重/参数。 iris tutorial of Deeplearning4J似乎使用批量大小为150:int batchSize = 150;
及更高版本DataSetIterator iter = new IrisDataSetIterator(batchSize, numSamples);
。
请注意,还有一个批处理模式用于更新神经网络的权重,这一点令人困惑 - 只有在所有输入向量之后才更新权重进入网络。然而,批处理模式基本上从未使用过。