gpt4 book ai didi

neural-network - 在神经网络中,为什么通常将神经元数量设置为 2^n?

转载 作者:行者123 更新时间:2023-12-04 03:58:25 26 4
gpt4 key购买 nike

例如,当堆积Dense layers ,按照惯例,我们总是将神经元的数量设置为 256 个神经元、128 个神经元、64 个神经元……等等。
我的问题是:
常规使用的原因是什么2^n神经元?这个实现会让代码运行得更快吗?节省内存?还是有其他原因?

最佳答案

这是历史性的。 GPU 计算的早期神经网络实现(用 CUDA、OpenCL 等编写)不得不关注高效的内存管理以实现数据并行。
一般来说,你必须在物理处理器上对齐 N 个计算。物理处理器的数量通常是 2 的幂。因此,如果计算次数不是 2 的幂,则计算无法 1:1 映射,必须四处移动,需要额外的内存管理(进一步阅读here)。这仅与并行批处理相关,即将批处理大小作为 2 的幂为您提供稍微更好的性能。有趣的是,将其他超参数(例如隐藏单元的数量作为 2 的幂)从未有过可衡量的好处——我认为随着神经网络变得越来越流行,人们只是开始适应这种做法而不知道为什么并将其传播到其他超参数。
如今,一些低级实现可能仍然受益于这个约定,但如果你在 2020 年使用带有 Tensorflow 或 Pytorch 的 CUDA 和现代 GPU 架构,你不太可能遇到 128 和 129 批大小之间的任何差异,因为这些系统针对非常高效的数据并行性进行了高度优化。

关于neural-network - 在神经网络中,为什么通常将神经元数量设置为 2^n?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63515846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com