首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道有多少深度学习的时代,从R?

如何知道有多少深度学习的时代,从R?
EN

Stack Overflow用户
提问于 2016-04-14 10:36:57
回答 2查看 1.3K关注 0票数 5

在默认情况下,h2o.deeplearning()会打开早期停止。但是,从R中,我如何找出它是否早停,以及它有多少个时代?我试过这个:

model = h2o.deeplearning(...) print(model)

它告诉我有关层、MSE、R2等方面的信息,但是没有任何关于运行多少个时代的信息。

在流程上,我可以看到信息(例如,x轴在“记分历史-偏离”图表中停止的位置,或者在得分历史表中的位置)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-15 14:31:47

如果您的模型名为m,那么只需要得到训练过的时代数:last(m@model$scoring_history$epochs)

要查看可用的其他信息(这实际上是您在流接口中可以看到的所有信息)以及如何访问它,请使用str(m)

还请注意以下命令:summary(m),除了print(m)显示的内容外,它还添加了本节(对于深度学习模型):

代码语言:javascript
复制
Scoring History: 
            timestamp   duration training_speed    epochs iterations       samples training_MSE training_deviance training_r2
1 2016-04-14 11:35:46  0.000 sec                  0.00000          0      0.000000
2 2016-04-14 11:35:52  5.218 sec 15139 rows/sec  10.00000          1  77150.000000      0.00000           0.00000     0.07884
...
7 2016-04-14 11:36:18 31.346 sec 25056 rows/sec 100.00000         10 771500.000000      0.00000           0.00000     0.72245

也就是说,通过查看最后一行,你可以看到总划期数。

顺便说一句,当应用于数据帧时,这与H2O的summary()命令不同;在这种情况下,它的行为类似于R的内置摘要函数,并显示数据帧中每列的统计信息。

票数 4
EN

Stack Overflow用户

发布于 2016-08-29 15:27:45

我很有信心地说,达伦·库克的回答只有在overwrite_with_best_model=FALSE的时候才有效。无论如何,默认情况下,此参数设置为TRUE,因此,由于可以部分找到here的原因,前面的答案可能会引起很大的误解。您可以在下面的输出中检查我的意思,使用h2o.grid对网络进行调优,并按照达伦的建议使用m@model$scoring_history

代码语言:javascript
复制
epochs     validation_classification_error
0.00000    0.46562
1.43150    0.50000
100.31780  0.46562

如您所见,如果overwrite_with_best_model=TRUE比函数在上一次迭代中保存了最好的模型,那么达伦的解总是对应于最大的历元数。假设您正在优化您的模型,我推荐以下解决方案:

代码语言:javascript
复制
epochsList = m@model$scoring_history$epochs
bestEpochIndex = which.min(m@model$scoring_history$validation_classification_error)
bestEpoch = epochsList[bestEpochIndex]
print(sprintf("The best epoch is: %d", bestEpoch))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36620585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档