我所拥有的:Tensorflow 中经过训练的循环神经网络。
我想要的:一个可以尽可能快地运行这个网络的移动应用程序(仅限推理模式,无需训练)。
我相信有多种方法可以实现我的目标,但我希望您提供反馈/更正和补充,因为我以前从未这样做过。
- 张量流精简版。Pro:直截了当,可在 Android 和 iOS 上使用。魂斗罗:可能不是最快的方法,对吧?
- 张量RT。Pro:非常快 + 我可以编写自定义 C 代码以使其更快。魂斗罗:用于 Nvidia 设备,所以在 Android 和 iOS 上运行并不容易,对吧?
- 自定义代码 + 库,如 openBLAS。Pro:可能非常快,并且有可能在 iOS 上的 Android 上链接到它(如果我没记错的话)。对比:循环神经网络有多大用处?它真的在 Android + iOS 上运行良好吗?
- 重新实现 Everything。我还可以用 C/C++ 重写整个计算,这对于循环神经网络来说应该不会太难。Pro:可能是最快的方法,因为我可以优化所有内容。反对:需要很长时间,如果网络发生变化,我也必须更新我的代码(尽管如果它真的是最快的,我愿意这样做)。另外,在 Android 上调用库 (C/C++) 的速度有多快?我是否受到 Java 接口的限制?
有关移动应用程序的一些详细信息。该应用程序将记录用户的声音,进行一些处理(如 Speech2Text)并输出文本。我不想找到“足够快”的解决方案,而是最快的选择,因为这将发生在非常大的声音文件上。所以几乎每一次速度改进都很重要。你有什么建议,我应该如何解决这个问题?
最后一个问题:如果我想雇人来帮助我,我应该寻找 Android/iOS-、Embedded- 或 Tensorflow- 类型的人吗?