Deep learning 深度学习4j中的时代和迭代

Deep learning 深度学习4j中的时代和迭代,deep-learning,deeplearning4j,Deep Learning,Deeplearning4j,我最近开始学习Deeplearning4j,但我无法理解纪元和迭代的概念实际上是如何实现的。 在线文档中写道: 历元是通过给定数据集的完整过程… 不要与迭代混淆,它只是一个简单的迭代 更新神经网络模型的参数 我使用multiplePeopochSiterator运行了一次培训,但在第一次运行时,我设置了1个历元,miniBatchSize=1,以及1000个样本的数据集,因此我希望培训在1个历元和1000次迭代后完成,但在超过100.000次迭代后,它仍在运行 int nEpochs = 1;

我最近开始学习Deeplearning4j,但我无法理解纪元和迭代的概念实际上是如何实现的。 在线文档中写道:

历元是通过给定数据集的完整过程…
不要与迭代混淆,它只是一个简单的迭代 更新神经网络模型的参数

我使用multiplePeopochSiterator运行了一次培训,但在第一次运行时,我设置了1个历元,miniBatchSize=1,以及1000个样本的数据集,因此我希望培训在1个历元和1000次迭代后完成,但在超过100.000次迭代后,它仍在运行

int nEpochs = 1;
int miniBatchSize = 1;

MyDataSetFetcher fetcher = new MyDataSetFetcher(xDataDir, tDataDir, xSamples, tSamples);
//The same batch size set here was set in the model
BaseDatasetIterator baseIterator = new BaseDatasetIterator(miniBatchSize, sampleSize, fetcher);

MultipleEpochsIterator iterator = new MultipleEpochsIterator(nEpochs, baseIterator);
model.fit(iterator)
然后我做了更多的测试来改变批量大小,但这并没有改变IterationListener打印的日志行的频率。我的意思是,我认为如果我将批处理大小增加到100,那么对于1000个样本,我将只有10次参数更新,因此只有10次迭代,但是日志和时间戳间隔或多或少是相同的

顺便说一句,有一个类似的问题,但答案实际上并没有回答我的问题,我想更好地了解实际细节:

在1.x之后,这一切都无关紧要(它已经在alpha中发布了)-我们很久以前就放弃了迭代

最初,它是一种快捷语法,这样人们就不必为循环编写代码


现在只需关注带有时代的for循环。

我想你的答案可以在