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