我目前正在构建一个神经网络库。为简单起见,我将其构建为对象图。我想知道是否有人可以量化采用基于数组的方法的性能优势。我现在所拥有的对于构建接近任意复杂性的网络非常有效。支持常规(反向支持)网络以及循环网络。我正在考虑将训练有素的网络“编译”成一些“更简单”的形式,例如数组。
我只是想看看那里是否有人有任何实用的建议或构建神经网络的经验,这些神经网络可以很好地部署到生产环境中。让最终产品基于数组而不是基于对象图有什么好处吗?
PS 内存占用不如速度重要。
我目前正在构建一个神经网络库。为简单起见,我将其构建为对象图。我想知道是否有人可以量化采用基于数组的方法的性能优势。我现在所拥有的对于构建接近任意复杂性的网络非常有效。支持常规(反向支持)网络以及循环网络。我正在考虑将训练有素的网络“编译”成一些“更简单”的形式,例如数组。
我只是想看看那里是否有人有任何实用的建议或构建神经网络的经验,这些神经网络可以很好地部署到生产环境中。让最终产品基于数组而不是基于对象图有什么好处吗?
PS 内存占用不如速度重要。
人们已经开始在 AI 中使用 GPGPU 技术,让您的神经网络采用矩阵形式可以利用典型显卡中更快的矩阵运算。
这一切都取决于您使用的语言 - 我假设您使用的是 C 衍生产品。
在我的实现中,我发现对象图方法要优越得多。在速度上有一些折衷,但易于维护胜过对象查找调用。这一切都取决于您是否正在寻找训练速度或解决速度......我假设您最担心训练速度?
如果需要,您总是可以最终对一些对象调用问题进行微优化。
考虑到您对网络进行子网划分的次要动机,我认为基于对象更为重要——它可以更容易地取出部分工作。
无论你如何实现它,你都不能忘记:
已经有一段时间了,但我记得速度通常只是神经网络训练期间的一个问题。