当前位置:  开发笔记 > 人工智能 > 正文

为深度学习选择小批量大小

如何解决《为深度学习选择小批量大小》经验,为你挑选了1个好方法。

在Ilya Sutskever的博客文章中,他简要介绍了深度学习,他描述了如何选择合适的小批量大小来有效地训练深度神经网络.他给出了"使用在您的机器上高效运行的小型小批量"的建议.请参阅下面的完整报价.

我见过其他着名的深度学习研究人员的类似陈述,但我仍然不清楚如何找到正确的小批量大小.看作更大的小批量可以允许更高的学习率,似乎需要大量的实验来确定某个小批量大小是否在训练速度方面产生更好的性能.

我有一个带4GB内存的GPU,并使用库Caffe和Keras.在这种情况下,如果每个观察都有一定的内存占用,那么选择一个好的小批量大小的实用启发式是M什么?

迷你:使用迷你吧.如果您一次处理一个培训案例,现代计算机就无法提高效率.在128个示例的小型机上训练网络效率要高得多,因为这样做会大大提高吞吐量.使用1号尺寸的小型车真的很不错,它们可能会提高性能并降低过度装配; 但这样做的好处远远超过了小型车提供的大量计算收益.但是,不要使用非常大的微型计算机,因为它们往往工作不太好并且过度装配更多.因此,实际建议是:使用在您的机器上高效运行的较小的小批量.

Indie AI.. 6

当我们训练网络时,当我们计算前向传球时,我们必须保留所有中间激活输出以用于向后传球.您只需计算在前向传递中存储所有相关激活输出所需的内存量,以及其他内存限制(将权重存储在GPU上等).因此,请注意,如果您的网络非常深,您可能需要采用较小的批量大小,因为您可能没有足够的内存.

选择小批量大小是内存约束和性能/准确性的混合(通常使用交叉验证进行评估).

我个人猜测 - 手动/计算我的前向/后向传递将消耗多少GPU内存并尝试一些值.例如,如果我能够容纳的最大值大约是128,我可以使用32,64,96等交叉验证,只是为了彻底查看我是否可以获得更好的性能.这通常用于更深的网络,这将推动我的GPU内存(我也只有4 GB的卡,无法访问怪物NVIDIA卡).

我认为通常会更加重视网络架构,交易的优化技巧/技巧,数据预处理.



1> Indie AI..:

当我们训练网络时,当我们计算前向传球时,我们必须保留所有中间激活输出以用于向后传球.您只需计算在前向传递中存储所有相关激活输出所需的内存量,以及其他内存限制(将权重存储在GPU上等).因此,请注意,如果您的网络非常深,您可能需要采用较小的批量大小,因为您可能没有足够的内存.

选择小批量大小是内存约束和性能/准确性的混合(通常使用交叉验证进行评估).

我个人猜测 - 手动/计算我的前向/后向传递将消耗多少GPU内存并尝试一些值.例如,如果我能够容纳的最大值大约是128,我可以使用32,64,96等交叉验证,只是为了彻底查看我是否可以获得更好的性能.这通常用于更深的网络,这将推动我的GPU内存(我也只有4 GB的卡,无法访问怪物NVIDIA卡).

我认为通常会更加重视网络架构,交易的优化技巧/技巧,数据预处理.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有