大家下午好.
我是Deepleaning4j库的新手,还有一些我还不清楚的东西."时代"的概念并不新鲜,因此很明显它代表了训练集的一个完整周期.我的第一个疑问与"迭代"的概念有关.什么是训练集的迭代?它是否对应于小批量训练实例或其他内容的分析?
在我的代码中,我设置了".iterations(1)"; 但是,当我运行我的代码时,我看到了很多:
... ScoreIterationListener - 在迭代XX得分是yy.yyyyyy"
所以,如果我设置".iterations(1)",为什么我继续看到XX的值大于1?"迭代"作为网络配置参数和"迭代"对ScoreIterationListener类意味着什么?
感谢大家对任何有用信息的回答或链接.
最好,毛罗.
该DeepLearning4J文档有一些很好的见解,尤其是对于一个时代和迭代之间的区别.
根据DL4J的文档:
" 一个迭代是简单的神经网络模型参数的一个更新.为了不被混淆的时代这是一个完整的遍历数据集.之前的时代已经过去,可能会发生多次迭代.时代,如果你更新迭代只代名词你每次通过整个数据集的参数一次;如果你使用迷你批次更新,它们意味着不同的东西.假设你的数据有2个小批量:A和B. .numIterations(3)
执行类似AAABBB的训练,而3个时期看起来像ABABAB. "
关于您的问题以及此摘录所引用的,如果您设置.iterations(1)
并且只有一个批次,则迭代将与1个纪元同义,或者一个遍历整个数据集.但是,如果使用迷你批次进行更新,则时期和迭代会略有不同 - 迭代将导致AAABBB而非生成ABABAB的时期(由上面的示例引用).
希望这个答案和文档链接回答你的问题!
PS我为迟到的回复道歉; 我最近偶然发现了这个问题!