本文概述
人工智能被认为是虚构的时代已经一去不复返了。
从机器人到Google Siri, 再到新的Google Duplex的推出, 人工智能似乎已经取得了长足的进步, 变得越来越人性化。
对机器学习和AI的需求呈指数增长。此外, 社区本身也因此增加了, 这导致了一些AI框架的发展, 这些框架使学习AI变得更加容易。
在本文中, 我们将讨论一些最佳框架, 以帮助你开始进行AI开发。
Tensor Flow
Tensor Flow来自Google家族, 被证明是一个强大的开源框架, 支持深度学习, 甚至可以从移动设备访问。
Tensor Flow被认为是用于统计程序开发的合适工具。由于它提供了分布式训练, 因此可以在用户喜欢的任何抽象级别上更有效地训练机器模型。
特征
- 可扩展的多重编程界面, 易于编程
- 强大的增长动力, 强大的开源社区
- 为人们提供广泛且文档齐全的手册
优点
- Tensor Flow使用的语言是Python, 它在当今非常流行。
- 该框架具有很高的计算能力。因此, 它可以在任何CPU或GPU上使用。
- 使用计算图抽象来创建机器模型
缺点
- 为了做出决定或预测, 框架将输入数据通过多个节点传递。这可能很耗时。
- 它还缺少许多AI的预训练模型。
Microsoft CNTK
Microsoft CNTK是一种基于神经网络的更快, 通用的开源框架, 该神经网络支持文本, 消息和语音重塑。
由于对机器模型进行了更快的整体评估, 同时又保证了准确性, 因此它提供了有效的缩放环境。
Microsoft CNTK与主要的海量数据集集成在一起, 使其成为Skype, Cortana等大型公司采用的领先选择, 并且具有易于表达的易于使用的体系结构。
特征
- 高度优化以提供效率, 可扩展性, 速度和高级集成
- 具有内置组件, 例如超参数调整, 监督学习模型, 强化, CNN, RNN等。
- 资源被利用以提供最佳效率。
- 可以高效表达的自有网络, 例如高级和低级的完整API
优点
- 由于该框架支持Python和C ++, 因此可以同时与多个服务器一起使用, 从而使学习过程更快。
- 考虑到AI世界的最新发展而开发。 Microsft CNTK的体系结构支持GAN, RNN和CNN。
- 它允许进行分布式培训来有效地训练机器模型。
缺点
- 它缺少可视化板和移动ARM支持。
Caffe
Caffe是深度学习网络, 它与预先加载的一组经过训练的神经网络一起提供。如果你的截止日期临近, 这应该是你的首选。
以其图像处理功能而闻名, 该框架还扩展了对MATLAB的支持。
特征
- 其所有模型均以纯文本模式编写
- 由于已经预先加载, 因此可以提供巨大的速度和高效的工作。
- 一个活跃的开源社区, 用于讨论和协作代码。
优点
- 互连C, C ++和Python, 它还支持CNN(卷积神经网络)的建模
- 由于其速度快, 因此在计算数字任务时效率很高。
缺点
- Caffe无法处理复杂数据, 但是在处理图像的视觉处理时相对较快。
Theano
该框架使用GPU代替CPU, 支持深度学习研究, 并能够为需要高计算能力的网络提供准确性。例如, 多维数组的计算需要高功率, 而Theano能够做到。
Theano基于python, 这是一种经过验证的编程语言, 可以实现更快的处理和响应。
特征
- 由于动态代码生成, 表达式的求值速度更快
- 即使值很小, 也能提供极好的精度。
- 单元测试是Theano的重要功能, 因为它允许用户自我验证其代码以及轻松检测和诊断错误。
优点
- Theano为所有数据密集型应用程序提供了有效的支持, 但需要与其他库结合使用。
- 针对CPU和GPU进行了有效的优化
缺点
- Theano的当前版本将没有更多更新或添加功能。
Amazon机器学习
作为AI社区的新加入者, Amazon机器学习为自学习工具的开发提供了高端支持。
该框架已经在其多种服务(例如AWS, S3和Amazon Redshift)中拥有现有的用户群。这是Amazon的一项托管服务, 对模型执行了三个操作, 分别是数据分析, 模型训练和评估。
特征
- 即使你是初学者, 数据科学家或开发人员, 也可以针对AWS的各个级别的体验量身定制工具
- 安全至关重要, 因此所有数据均已加密
- 提供用于数据分析和理解的广泛工具
- 与所有主要数据集的整合
优点
- 你无需使用此框架编写大量代码。相反, 它使你可以通过API与基于AI的框架进行交互。
- 数据科学家, 开发人员和ML研究人员通常使用。
缺点
- 它缺乏灵活性, 因为整个框架都是抽象的, 因此, 如果你想选择特定的规范化或机器学习算法, 则不能。
- 它还缺乏数据可视化。
Torch
Torch是可以支持数字运算的开源框架。它提供了许多算法, 可加快深度学习网络的发展速度。
它在Facebook和Twitter的AI实验室中得到广泛使用。有一个称为PyTorch的基于python的框架, 事实证明它更简单, 更可靠。
特征
- 具有许多例程, 可使用N维数组模型进行索引, 切片和转置
- 存在优化例程, 主要是基于神经网络模型的数字
- GPU支持非常高效
- 与iOS和Andriod轻松集成
优点
- 在语言和集成方面具有很高的灵活性
- 高水平的速度和GPU利用率
- 已有模型可用于训练数据。
缺点
- 文档对用户不是很清楚, 因此呈现了更陡峭的学习曲线
- 缺少立即使用的代码, 因此需要时间。
- 它最初是基于一种称为Lua的编程语言, 并且很少有人知道它。
Accord.Net
Accord.net是基于C#的框架, 可帮助开发用于音频和图像处理的神经网络。
应用程序也可以在商业上使用它来产生计算机视觉应用程序, 信号处理以及统计应用程序。
特征
- 成熟, 经过良好测试的代码库, 始于2012年
- 提供全面的样本模型和数据集, 以快速启动你的应用程序
优点
- 它由一个活跃的开发团队不断支持。
- 这个文档齐全的框架可有效处理数字密集型计算和可视化
- 利用该框架可以方便地执行算法和信号处理。
- 它可以轻松处理数值优化和人工神经网络。
缺点
- 与其他框架相比, 它不是很为人所知。
- 与其他框架相比, 其性能较慢。
Apache Mahout
Apache Mahout是一个开放源代码框架, 旨在开发可伸缩的机器学习框架。它不处理API, 但可以帮助数据科学家和工程师实施新的机器学习算法。
特征
- 以Scala DSL闻名, 它在数学上非常具有表现力
- 将支持扩展到分布式的多个后端。
优点
- 它有助于聚类, 协作过滤和分类。
- 它的计算操作使用Java库, 速度更快。
缺点
- 在此框架下, Python库不如Java库兼容。
- 它的计算操作比Spark MLib慢。
Spark MLib
R, Scala, Java和Python支持Apache的Spark MLib框架。可以将其与Hadoop工作流一起加载, 以提供机器学习算法, 例如分类, 回归和聚类。
除了Hadoop, 它还可以与云, Apache甚至独立系统集成。
特征
- 高性能是关键要素之一, 据说比MapReduce快100倍
- Spark具有多种用途, 可在多种计算环境中运行
优点
- 由于它可以进行迭代计算, 因此可以快速处理大量数据。
- 它有多种语言版本, 并且易于插入。
- 它轻松地循环进行大规模数据处理。
缺点
- 它只能插入Hadoop。
- 没有同一个框架的大量工作, 很难理解这个框架的机制。
AI框架比较
构架 | 语言 | 开源? | 建筑特色 |
Tensor Flow | C ++或Python | 是 | 使用数据结构 |
Microsoft CNTK | C ++ | 是 | 基于GPU / CPU。它支持RNN, GNN和CNN。 |
Caffe | C ++ | 是 | 它的架构支持CNN |
Theano | python | 是 | 灵活的架构使其可以部署在任何GPU或CPU中 |
Amazon机器学习 | 多种语言 | 是 | 来自亚马逊, 它使用AWS。 |
Torch | 拿 | 是 | 它的体系结构允许强大的计算。 |
Accord.Net | C# | 是 | 能够进行科学计算和模式识别。 |
Apache Mahout | Java, Scala | 是 | 无需编程即可使机器学习 |
Spark MLib | R, Scala, Java和Python | 是 | 驱动程序和执行程序在其处理器中运行。水平或垂直群集。 |
我希望以上内容可以帮助你为下一个现代应用程序开发选择AI框架。
如果你是一名开发人员, 并希望学习深度学习以进入AI, 那么你可以考虑使用Coursera开设的这门专业在线课程。
评论前必须登录!
注册