java - Deeplearning4j:迭代、时期和 ScoreIterationListener

标签 java deeplearning4j

大家下午好

我对 Deepleaning4j 库还很陌生,有一些东西我还不清楚。 “epoch”的概念并不新鲜,因此很明显它代表了训练集上的一个完整周期。 我的第一个疑问与“迭代”的概念有关。什么是训练集的迭代?它对应于对小批量训练实例数量的分析还是对应于其他东西?

在我的代码中,我设置了“.iterations(1)”;然而,当我运行我的代码时,我看到了很多:

... ScoreIterationListener - 迭代 XX 的分数是 yy.yyyyyy"

那么,如果我设置“.iterations(1)”,为什么我会继续看到大于 1 的 XX 值? “迭代”作为网络配置参数的想法与“迭代”对 ScoreIterationListener 类的含义之间是否存在一些差异?

感谢大家的回答或有用信息的链接。

最好的, 毛罗。

最佳答案

DeepLearning4J documentation有一些很好的洞察力,尤其是关于纪元和迭代之间的区别。

根据 DL4J 的文档:

迭代只是神经网络模型参数的一次更新。 不要与 epoch 混淆,后者是对数据集的一次完整遍历。 在一个纪元结束之前可能会发生许多迭代。只有在每次遍历整个数据集时更新一次参数时,时代和迭代才是同义词;如果您使用小批量更新,它们意味着不同的东西。假设您的数据有 2 个小批量:A 和 B。.numIterations(3) 执行像 AAABBB 这样的训练,而 3 个 epoch 看起来像 ABABAB

关于您的问题以及此摘录所引用的内容,如果您设置 .iterations(1) 并且只有一个批处理,则迭代将等同于 1 个纪元,或者一次通过完整的数据集。但是,如果您使用小批量更新,一个时期和一个迭代会略有不同——一个迭代会产生 AAABBB,而不是一个时期,后者会产生 ABABAB(由上面的示例引用)。

希望这个答案和链接的文档能回答您的问题!

附言对于迟到的答复,我深表歉意;我最近偶然发现了这个问题!

关于java - Deeplearning4j:迭代、时期和 ScoreIterationListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41637150/

相关文章:

java - 基本的 deeplearning4j 分类示例

java - ZipFile 抛出错误,但 ZipInputStream 能够解压缩存档

java - 半透明 JFrame 边框 JDK 7

java - 我怎样才能保持相同的值(value)?

java - 如何将自定义数据模型与 Deeplearning4j 结合使用?

java - 运行 deeplearning4J 示例时出现问题

java - DL4J中如何获取CNN网络卷积层的滤波器数据来绘制激活图?

java - Apache Wicket 中继器 : an overview

java - 有可用的聊天机器人框架吗?

machine-learning - 如何明确机器学习使用哪些模型层?