设置批量大小*和*神经网络的训练迭代次数?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设置批量大小*和*神经网络的训练迭代次数?相关的知识,希望对你有一定的参考价值。

我正在使用KNIME Doc2Vec Learner节点来构建Word嵌入。我知道Doc2Vec是如何工作的。在KNIME中,我可以选择设置参数

  • 批量大小:每批次使用的单词数。
  • 时代数:训练的时期数。
  • 培训迭代次数:每批次更新的次数。

从神经网络我知道(懒洋洋地从https://stats.stackexchange.com/questions/153531/what-is-batch-size-in-neural-network复制):

  • 所有训练样例的一个时期=一个前进和一个后退
  • 批量大小=一个前向/后向传递中的训练样本数。批量大小越大,您需要的内存空间就越大。
  • 迭代次数=次数,每次通过使用[批量大小]数量的示例。要清楚,一次传球=一次前进传球+一次后传传球(我们不计算前进传球和后传传球作为两次不同传球)。

据我所知,设置批量大小和迭代没有多大意义,因为一个是由另一个决定的(给定数据大小,由环境给出)。那为什么我可以改变这两个参数呢?

答案

情况不一定如此。你也可以训练“半个时代”。例如,在Google的inceptionV3预训练脚本中,您通常会同时设置迭代次数和批量大小。这可能会导致“部分时代”,这可能会很好。

如果是一个好主意或不训练半个时代可能取决于您的数据。有一个thread关于这个,但不是一个结论性答案。

我不熟悉KNIME Doc2Vec,所以我不确定那里的含义是否有所不同。但是根据您给出的定义批量大小+迭代的定义似乎很好。设置时期数也可能导致冲突,但会导致数字无法合理组合。

以上是关于设置批量大小*和*神经网络的训练迭代次数?的主要内容,如果未能解决你的问题,请参考以下文章

训练神经网络:由于批量大小导致的数学原因

BP神经网络的训练集需要大样本吗?一般样本个数为多少?

epoch和iteration的区别

神经分割网络根据测试批量大小给出不同的输出

回归损失函数不正确

pytorch epoch, batch, iteration