本文介绍了适用于移动端的 10 个机器学习框架,包括针对计算机的机器学习框架和针对手机端的优化性能的框架。
当今,机器学习及其相关框架和工具包已经成为业务概念,消除了对人工及劳动密集型任务的需求,并且相较于人类而言可以极快地从海量数据中提取出有价值信息。
尽管我们已经可以在台式计算机和性能优良的笔记本上运行神经网络,但是智能手机和平板电脑的原始处理能力太低,无法本地运行算法。因此,智能手机中的 AI 应用通常是借助于向一个更强大的处理服务器发送 API 请求,由其运行实际的计算,并把数据输出给手机来执行。
这就是为什么本文列表分为两部分:针对计算机的更强大的机器学习框架和针对移动端的优化性能的框架。
计算机机器学习框架
该列表包含运行在适当硬件上的一般框架,可以处理海量的数据集。
谷歌 TensorFlow
GitHub 中有超过一半的机器学习项目使用了 TensorFlow,其完整版本是当下最为流行的 ML 工具集。借助来自第三方开发者的数百个附件、插件和模块,TensorFlow 几乎可以完成所有的 ML 任务,诸如产品推荐、语音识别、人脸识别和物体识别等。
亚马逊机器学习(AML)
亚马逊机器学习来自亚马逊社区,通过教程、指南等资源帮助开发者构建复杂而高级的 AI。AML 不仅具备训练神经网络的一系列常用功能,还可以在 AWS cloud 上实现部署,并具备连接 Alexa 或其他亚马逊服务的完整 API。该社区同样在实例和附件方面做出了大量贡献。
微软 CNTK
CNTK 是由微软开发的强大工具包,它在企业级应用上尤其常用,所有最常用的神经网络(如前馈神经网络、循环神经网络、并行神经网络)都可以使用同样的代码开发。大量内置功能简便了验证、API 和服务器本地化设置。
MXNet
MXNet 是该列表中的第一个 Apache 项目;它是一个有前景、活跃的框架,可应用于移动端,即你可以在任何安卓或 iOS 设备上训练数据、运行计算集(computed set),该框架也可在 Linux 和 Windows 计算机上运行。MXNet 在 GitHub 上有 12000 多个 star,是 GitHub 最流行的框架之一,部分原因在于它可以使用不同的语言来写,如 Python、Rust、Scala、Go 和 JavaScript,还有一部分原因是它具备大量的社区内容。
MLlib
Apache 在 AI 和 ML 很活跃。该框架具备大量工具和包,允许程序员构建智能应用。MLlib 可以在 Hadoop 或 Apache Spark 上轻松设置,它能做的内容不仅仅是与 API 进行通信,可用于图像分类、线性回归、决策树等等。
移动端机器学习框架
谷歌 TensorFlow Lite
目前最完整的免费移动端解决方案就是 TensorFlow Lite,它最初适用于安卓机,不过一些人也在 iOS 设备上实现了该框架。其关键特征是低延迟进行实时图像处理、可用于安卓机的硬件加速,以及使计算速度快于 TensorFlow 完整版的量化内核(quantized kernel)。
Caffe2
Caffe2 从 Caffe 发展而来,使用模块化方法进行机器学习。该精简版允许选择任意给定项目所需的模型和工具,无需添加额外的 bloat。其主要特征是移动端部署,允许开发者在手机上实时运行不同的神经网络计算。
Bender
该框架很有前景,使用了不同的方法和苹果自己的 Core ML。该框架使用 iPhone 的移动 GPU 着色器工具包 Metal Performance Shaders,允许 iPhone 用户利用 GPU 运行机器学习算法,尽管它主要还是用于运行预训练数据,像 Core ML 一样。
Quantized-CNN
如名称所示,该框架适合运行并行神经网络。对于为计算机构建的大型框架,Quantized-CNN 只在准确率上稍有降低,为在移动设备上完全运行图像分类提供了轻量级的解决方案。
苹果 Core ML
随着机器学习和移动应用的流行,苹果发布了 Core ML 库,允许移动应用开发者在强大的计算机上训练模型,然后将其保存在手机上,并运行模型的优化版本。
结论
看起来大多数企业仍然使用 API 调用来与强大的服务器进行通信,这种方法仅将最少量的信息发送回手机进行计算。
因此,尽管我们了解了很多专门适用于手机和平板的精简版框架,但是距离能够本地运行所有计算的强大处理器似乎还有一段距离。
原文链接:http://hopinfirst.com/top-10-machine-learning-frameworks-mobile-apps/?utm_campaign=Submission&utm_medium=Community&utm_source=GrowthHackers.com