0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

Linux爱好者 2018-02-05 14:47 次阅读

(点击上方公众号,可快速关注)

编译:伯乐在线-飞哥的咖啡,英文:dashbouquet

尽管人工智能AI )已经存在很长时间了,但因为这一领域取得的巨大进步,它最近成为了一个流行词。

AI 曾被认为是狂热爱好者和天才的专属领域,但由于各种库和框架的蓬勃发展,它慢慢成为了一个不那么排外的 IT 领域,并吸引了大量的人才投入其中。

在本文中,我们将介绍那些用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性。

现在,让我们进入并探索 AI 库的世界吧。

TensorFlow:“使用数据流程图对可拓展的机器学习进行计算”

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

语言:C++

84 725 ★

初接触 AI 时,你听说的首批框架应该包含了谷歌的 TensorFlow。

TensorFlow 是一个使用数据流程图进行数值计算的开源软件。这个不错的框架因其架构而闻名,它允许在任何 CPUGPU 上进行计算,不管是桌面、服务器,还是移动设备。它可在 Python 编程语言中使用。

TensorFlow 主要是通过数据层进行排序,而我们可以调用节点,并根据所得到的信息进行决策。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

使用简单易学的语言,如 Python。

使用计算图进行抽象。

可以使用 TensorBoard 获得可视化。

缺点:

运行速度慢,因为 Python 不是最快的语言。

缺乏许多预训练的模型。

不完全开源。

Microsoft CNTK:“开源的深度学习工具包”

语言:C++

13 516 ★

我们是否可以将它看作是微软对谷歌 TensorFlow 的回应?

微软的CNTK(计算网络工具包)是一个用来增强模块化和保持计算网络分离的库,提供学习算法和模型描述。

在需要大量服务器进行计算的情况下,CNTK 可以同时利用多台服务器。

据说 CNTK 在功能上接近谷歌的 TensorFlow,但速度比对方要快一些。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

高度灵活。

允许分布式训练。

支持 C++、C#Java 和 Python。

缺点:

它由一种新的语言——NDL(网络描述语言)实现。

缺乏可视化。

Theano:“数值计算库”

语言:Python

7 550 ★

作为 TensorFlow 的强有力竞争对手,Theano 是一个强大的 Python 库,它允许使用高效多维数组进行数值计算。

它不使用 CPU,而是透明地使用 GPU,用于数据密集型计算,所以效率很高。

因此,在大约 10 年内,Theano 一直被用于大规模的数据密集型计算。

然而,在 2017 年 9 月 28 日当日,开发团队宣称,将在 2017 年 11 月 15 日发布 1.0 版后,停止对它的主要开发。

但这并没有削弱它的强大实力,你仍可以使用它,随时进行深入学习的研究。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

对 CPU 和 GPU 进行了适当优化。

高效的数值计算任务。

缺点:

与其他库相比,原始的 Theano 有点儿低级。

需要与其他库一起使用,以获得较高级的抽象。

在 AWS 上使用有点小 Bug。

Caffe:“应对深入学习的快速开放架构”

语言:C++

22 111 ★

Caffe 是一个强大的深度学习框架。

和这个列表中的其他框架一样,它对于深入学习的研究而言,是非常快速和有效的。

使用 Caffe,你可以轻易地构建一个用于图像分类的 CNN(卷积神经网络)。它在 GPU 上运行良好,使得运行速度非常快。

上图是 Caffe 的主类。

优点:

可以与 Python 和 MATLAB 绑定使用。

高性能。

无需编写代码,即可训练模型。

缺点:

对递归网络支持不好。

对新架构来说不是很好。

Keras:“针对人类的深度学习”

语言:Python

23 711 ★

Keras 是一个用 Python 编写的开源神经网络库。

不似TensorFlow、CNTK、Theano、Keras 这种端到端(End-to-End)的机器学习框架,

相反,它是一个接口,提供了高层次的抽象,使得神经网络的配置变得更加简单,而不必考虑所在的框架。

谷歌的 TensorFlow 目前支持 Keras 作为后端,而微软的 CNTK 也将在短时间内获得支持。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

它对用户友好,易于上手。

高度拓展。

可以在 CPU 或 GPU 上无缝运行。

完美兼容 Theano 和 TensorFlow。

缺点:

不能有效地作为一个独立的框架来使用。

Torch:“开源机器学习库”

语言:C

7 584 ★

Torch 是一个用于科学计算和数值计算的开源机器学习库。

它是一个基于 Lua 编程语言(终于不再是 Python)的库。

通过提供大量算法,使得深入学习的研究更加容易,并提高了效率和速度。它有一个强大的 N 维数组,帮助进行类似切片和索引这样的计算,并提供线性代数程序和神经网络模型。官网:http://torch.ch/

优点:

高度灵活。

速度快,效率高。

大量的预训练模型可用。

缺点:

说明文档不够清晰。

缺乏立即使用的即插即用代码。

它基于一个不怎么流行的编程语言 Lua。

Accord.NET:针对 .NET 的机器学习、计算机视觉、统计学和通用科学计算

语言:C#

2 424 ★

这是为 C# 程序员准备的。

Accord.NET 框架是一个 .NET 机器学习框架,使得音频和图像的处理变得更加简单。

该框架可以有效地解决数值优化、人工神经网络,甚至给出了可视化的特征。此外,Accord.NET 对计算机视觉和信号处理具有强大的功能,并且易于算法实现。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

它拥有一个庞大且活跃的开发团队。

说明文档非常不错。

高质量的可视化。

缺点:

这不是一个非常流行的框架。

与 TensorFlow 相比,速度慢

Spark MLlib:可扩展的机器学习库

语言:Scala

15 708 ★

Apache 的 Spark MLlib 是一个具有高度拓展性的机器学习库。

它在 Java、Scala、Python 甚至 R 语言中都非常有用,因为它使用 Python 和 R 中类似 Numpy 这样的库,能够进行高效的交互。

MLlib 可以很容易地插入 Hadoop 工作流程中。它提供了机器学习算法,如分类、回归、聚类等。

这个强大的库在处理大规模的数据时,速度非常快。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

对于大规模数据处理来说,非常快。

可用于多种语言。

缺点:

陡峭的学习曲线。

仅 Hadoop 支持即插即用。

Sci-Kit Learn:“Python 中的机器学习”

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

语言:Python

24 369 ★

Sci-kit learn 是一个针对机器学习的强大 Python 库,主要用于构建模型。

使用诸如 Numpy、SciPy 和 Matplotlib 等其他库构建,对于统计建模技术(如分类、回归、集群等)非常有效。

Sci-Kit learn的特性包括监督式学习算法、非监督式学习算法和交叉验证。

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

可以使用许多 shell 算法。

高效的数据挖掘。

缺点:

不是最好的模型构建库。

GPU 使用不高效。

MLPack:“可扩展的 C++ 机器学习库”

语言:C++

1 856 ★

MLPack 是一个使用 C++ 实现的可扩展的机器学习库。在 C++ 中,你可以猜到,它的内存管理非常出色。

拥有高质量的机器学习算法与库,MLPack 的运行速度非常快。它对新手十分友好,因为它提供了一个可供使用的简单 API

介绍用于 AI 开发的高质量库,并谈谈它们的优缺点,以及特性

优点:

高度拓展。

可以与 Python 和 C++ 绑定。

缺点:

说明文档不够清晰。

总结

本文所讨论的库都非常高效,并经过了时间的考验,质量上乘。五大巨头 Facebook、谷歌、雅虎、苹果、微软都在使用这些库进行深度学习和机器学习项目。

你有什么理由不用哪?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • AI
    AI
    +关注

    关注

    87

    文章

    30072

    浏览量

    268331
  • C++
    C++
    +关注

    关注

    22

    文章

    2104

    浏览量

    73478
  • 机器学习
    +关注

    关注

    66

    文章

    8373

    浏览量

    132389
  • python
    +关注

    关注

    55

    文章

    4778

    浏览量

    84438

原文标题:10 个用于 AI 开发的框架和库

文章出处:【微信号:LinuxHub,微信公众号:Linux爱好者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    protel输出高质量gerber

    图文并茂一步一步手把手教你输出高质量的gerber傻瓜式教学。。。。[hide] [/hide]
    发表于 12-12 15:43

    高质量C++、C编程指南

    高质量C++、C编程指南
    发表于 08-06 11:58

    高质量C&C++

    高质量C&C++
    发表于 08-16 19:45

    高质量C语言编程

    高质量c语言,精,精,精,精华
    发表于 07-22 13:48

    编写高质量C语言代码

    编写高质量C语言代码 编写高质量C语言代码 编写高质量C语言代码
    发表于 07-31 17:47

    林锐《高质量C语言编程》

    林锐《高质量C语言编程》
    发表于 08-17 12:10

    高质量c语言高级教程

    。这些软件频频获奖,有一个软件获得首届中国大学生电脑大赛软高质量 C++/C 编程指南,v 1.0 2001 Page 7 of 101件展示一等奖。在 1995 年开发的一套图形软件到 2000
    发表于 01-07 11:16

    高质量编程

    干货,《495个C语言问题》、《华为内部程序设计编码规范》、《C语言:陷阱和缺陷》、《高质量C编程[林锐]》
    发表于 02-27 19:39

    【下载】高质量干货-22本高质量EMC电磁兼容性设计资料

    22本高质量EMC电磁兼容性设计资料请君自取总体太大压缩成两个压缩包。希望这些内容能对大家在设计上有所帮助!
    发表于 03-20 00:02

    用于低成本和低功耗声音基于ATSAM2133B的高质量独立评估板

    ATSAM2133-EK1,ATSAM2133-EK1评估板是基于ATSAM2133B(集成数字仪器)的高质量独立评估板。 ATSAM2133-EK1是基于ATSAM2133B(集成数字仪器)的高品质独立评估板,专用于低成本和低功耗声音合成应用
    发表于 08-17 09:39

    请问怎么才能设计出高质量的印制线路板?

    怎么才能设计出高质量的印制线路板?
    发表于 04-23 06:57

    馈电电路有哪几种?它们有什么优缺点以及应用范围?

    馈电电路有哪几种?它们有什么优缺点以及应用范围?
    发表于 05-27 06:27

    现在主流单片机都有哪些?它们具有哪些特性优缺点

    现在主流单片机都有哪些?它们具有哪些特性优缺点
    发表于 09-27 07:21

    毫米波的传播特性优缺点

    本文介绍了毫米波 (mmWave),包括其频率、传播特性以及常见应用的优缺点
    的头像 发表于 04-21 16:59 8235次阅读
    毫米波的传播<b class='flag-5'>特性</b>及<b class='flag-5'>优缺点</b>

    双绞线和同轴电缆的特征以及优缺点

    双绞线和同轴电缆的特征以及优缺点  双绞线和同轴电缆都是用于传输信号和数据的常见电缆类型。它们在不同的应用场景中具有不同的特征和优缺点。下面
    的头像 发表于 12-26 16:23 4275次阅读