TensorFlow 、Caffe等9大主流人工智能框架优劣势分析
点击上方关注,All in AI中国
从机器人到谷歌Siri,再到现在新推出的谷歌双工系统,人工智能似乎已经取得了相当大的进步,变得越来越人性化。
对机器学习和人工智能的需求呈指数级增长,相关社区也因此增加,促进了一些AI框架的发展,这些框架使得学习AI变得更加容易。
在本文中,您将了解一些最佳框架,以帮助您开始AI开发。
Tensor Flow
https://www.tensorflow.org
Tensor Flow来自谷歌家族,是一个强大的开源框架,支持深度学习,甚至可以通过移动设备访问。
Tensor Flow是一个适用于统计程序开发的工具。由于它提供分布式培训,所以可以在用户喜欢的任何抽象级别上更有效地培训机器模型。
特性
- 可扩展的多编程接口,便于编程。
- 强劲的增长动力,拥有强大的开源社区。
- 为人们提供广泛且有详细记录的手册。
优点
- Tensor Flow使用的语言是Python,现在非常流行。
- 该框架具有较高的计算能力。因此,它可以在任何CPU或GPU上使用。
- 使用计算图形抽象创建机器模型。
缺点
- 为了做出决策或预测,框架将输入数据通过多个节点传递,这可能非常耗时。
- 缺乏许多预先训练好的AI模型。
Microsoft CNTK
The Microsoft Cognitive Toolkit - Cognitive Toolkit - CNTK | Microsoft Docs
Microsoft CNTK是一个更快、更通用的开源框架,它基于支持文本、消息和语音重构的神经网络。
它提供了一个高效的扩展环境,在保证精度的同时,可以更快地全面评估机器模型。
Microsoft CNTK与主要的海量数据集集成,使其成为Skype、Cortana等大公司的首选,同时具有非常易于表达和使用的架构。
特性
- 高度优化以提供速率、可扩展性、速度和高级集成。
- 内置超参数调整、监督学习模型、增强、CNN、RNN等组件。
- 资源用来提供最佳效率。
- 拥有可以高效表达的自有网络,如完整的API,包括高级和低级。
优点
- 由于它支持Python和C++,所以这个框架可以同时使用多个服务器,从而使学习过程更快。
- 它的开发考虑到了人工智能世界的最新发展。Microsft CNTK的架构支持GAN、RNN和CNN。
- 它允许分布式培训有效地培训机器模型。
缺点
- 它缺乏可视化板和ARM支持。
Caffe
Caffe是一个深度学习网络,附带预先加载的训练好的神经网络。如果你的截止日期很近,这应该是你的第一选择。
该框架以其图像处理能力而闻名,还有对MATLAB的扩展支持。
特性
- 它的所有模型都是用纯文本模式编写的。
- 因为它已经预先加载,所以可提供巨大的速度和高效率的工作。
- 一个活跃的开源社区,用于讨论和协作代码。
优点
- C、C++和Python相互连接,它还支持CNN(卷积神经网络)的建模。
- 由于速度快,计算数字任务时效率很高。
缺点
- Caffe不能处理复杂的数据,但在处理图像的视觉处理时速度较快。
Theano
Welcome — Theano 1.0.0 documentation
使用GPU代替CPU,该框架支持深度学习研究,并能够为需要高计算能力的网络提供准确性。例如,多维数组的计算需要高功率,而Theano能做到这一点。
Theano基于Python,Python是一种经过验证的编程语言,可以提高处理和响应速度。
特性
- 由于动态代码生成,表达式的计算速度更快。
- 即使值很小,也能提供出色的精确度。
- 单元测试是Theano的一个重要特性,因为它允许用户自我验证代码,以及轻松地检测和诊断错误。
优点
- 针对CPU和GPU进行了优化。
缺点
- 当前版本的Theano将不再更新或添加任何功能。
Amazon machine learning
Amazon Machine Learning 机器学习_机器学习服务-AWS云服务
作为AI社区的趋势参与者,Amazon machine learning在开发自学工具方面提供了高端支持。
该框架已在其多个服务(如AWS,S3和Amazon Redshift等)中拥有现有的用户基础。这是亚马逊的托管服务,对模型进行数据分析、模型培训和评估三个操作。
特性
- 即使您是一个初学者、数据科学家或开发人员,AWS中都有针对每个级别的经验定制的工具。
- 安全性至关重要,因此所有数据都是加密的。
- 为数据分析和理解提供广泛的工具。
- 与所有主要数据集的集成。
优点
- 您不需要使用这个框架编写大量代码。相反,它允许您通过API与AI支持的框架进行交互。
- 数据科学家、开发人员和ML研究人员常用。
缺点
- 它缺乏灵活性,因为整个框架都是抽象的,所以如果您想选择一个特定的标准化或机器学习算法,就不合适。
- 缺乏数据可视化。
Torch
Torch | Scientific computing for LuaJIT.
Torch是一个开源框架,可以支持数值运算。它为快速开发深度学习网络提供了多种算法。
它广泛用于Facebook和Twitter的AI实验室。有一个基于Python的框架,称为PyTorch,已经被证明是更简单和更可靠的。
特性
- 具有许多例程,可以使用N维数组模型进行索引,切片,转置。
- 存在优化例程,主要是基于神经网络模型的数字。
- GPU支持非常高效。
- 与iOS和Andriod轻松集成。
优点
- 语言和集成的灵活性非常高。
- 高水平的速度和GPU利用率。
- 预先存在的模型可用于训练数据。
缺点
- 文档对用户来说不是很清楚,用户学习困难。
- 缺乏立即使用的代码,因此需要时间。
- 它最初基于一种名为Lua的编程语言,并没有多少人知道它。
Accord.Net
http://accord-framework.net
Accord.net是一个基于C#的框架,它帮助开发用于音频和图像处理的神经网络。
可以在商业上使用它来生成计算机视觉应用程序,信号处理以及统计应用程序。
特性
- 成熟,经过良好测试的代码库,因为它始于2012年。
- 提供一组全面的示例模型和数据集,以快速启动应用程序。
优点
- 它由一个活跃的开发团队持续支持。
- 这个文档齐全的框架可以有效地处理数字密集型计算和可视化。
- 使用该框架可以方便地执行算法和信号处理。
- 它可以轻松处理数值优化和人工神经网络。
缺点
- 与其他框架相比,它并不为人所知。
- 与其他框架相比,它的性能较慢。
Apache Mahout
Apache Mahout是一个开源框架,旨在开发可扩展的机器学习框架。它不涉及API本身,而是助于数据科学家和工程师实现新的机器学习算法。
特性
- 以Scala DSL而闻名,它在数学上很有表现力
- 支持多个分布式后端扩展
优点
- 它有助于集群、协同过滤和分类。
- 它的计算操作使用Java库,速度更快。
缺点
- Python库与此框架的Java库不兼容。
- 它的计算操作比Spark MLib慢。
Spark MLib
Apache支持的Spark MLib框架由R、Scala、Java和Python支持。它可以加载Hadoop工作流来提供机器学习算法,如分类、回归和集群。
除了Hadoop,它还可以与cloud、Apache甚至独立系统集成。
特性
- 高性能是关键因素之一,据说比MapReduce快100倍
- Spark非常通用,可在多种计算环境中运行
优点
- 它可以快速处理大量的数据,因为它的工作是迭代计算。
- 它有多种语言版本,易于插拔。
- 它可以轻松地循环大规模的数据处理。
缺点
- 它只能用Hadoop插件。
- 如果没有对这个框架进行大量的工作,就很难理解这个框架的机制