上一篇文章已经写过了,人工智能的发展不可谓不曲折,三起两落,不同的历史阶段,主流的研究方法不一样,开始时的 if-else 结构,简单的逻辑判断字符串匹配,到后期的穷举计算等,慢慢发展到现在的大数据与深度学习相结合的主流研究方法,逐渐体现出了较大的优势,同时也涌现出了不同的深度学习(机器学习)框架,以下挑选五种主流的框架进行介绍进行对比分析,以供大家参考使用:

  1. TensorFlow:推荐指数 ☆☆☆☆☆

    TensorFlow 可谓大名鼎鼎,是 Google 大脑团队开发的深度学习框架,Google 现有产品几乎都使用到了 TensorFlow,比如 Google 的邮件、搜索、语音识别和相册等,无一例外。现在的 TensorFlow 版本已经是 TensorFlow 2 了,较之前的版本有了更大的更新。TensorFlow 核心是由 C 和 C++ 语言编写,但是其提供了几乎完整的 Python 接口支持,可以非常方便的进行系统的构建,同时根据不同的情况,也提供了极其丰富的各平台支持,对于移动端,有 Lite 版本用于 iOS、Android 和 IoT 设备,还有 JavaScript、nodejs、go语言,甚至还有微信小程序的相关支持,在其官网和 GitHub 都有比较详细的文档和实例。其优势也相对明显,有 Google 去保证其质量和后期维护,社区和流行度也比较普及,因此算是学习和使用性价比较高的框架。

  2. Keras:推荐指数 ☆☆☆☆

    Keras 是一个 Python 深度学习库,是一个相对高级的神经网络 API,其本质是对 TensorFlow(Google)、CNTK(微软) 和 Theano 的封装,可以快速的进行实验。以上是 Karas 官网对其自己的定义,确实它在原型设计和 Demo 实验阶段表现突出,它有很多的工具,在可视化、神经网络模型结构和数据的处理方面都非常好用,是一个需要熟悉和掌握的深度学习框架。

  3. PyTorch:推荐指数 ☆☆☆☆☆

    PyTorch 是另外一个极其重要的机器学习框架,是 Facebook AI 研究实验室基于 Torch 开发的,Torch 是基于 C 开发Lua 封装的,它的优势是 GPU 支持相对其他框架更好一些,代码写起来更像 Python。他跟 TensorFlow 最大的区别是 TensorFlow 用的是“静态计算图”,PyTorch 用的是“动态计算图”,也就是在运行过程中是否可以改变模型整体计算图,这一点在后续的文章中会再次说明。

  4. NumPy:推荐指数 ☆☆☆☆

    这也是一个非常流行的 Python 机器学习的库,TensorFlow 和其他的许多库都使用了 NumPy 作为他们功能的一部分,对于多维数组对象,线性代数,傅里叶变换和较强的随机数能力表现都比较突出,值得了解一下,如果有需要更可以深入去学习使用。

  5. scikits-learn:推荐指数 ☆☆☆☆

    这也是一个机器学习的 Python 库,它在处理复杂数据方面能力较强,包含大量的机器学习任务和数据挖掘任务的大量的算法,降维、分类、回归、聚类等各种模型,非常方便。在数据挖掘领域应用较多,也是一个值得深入学习和研究的机器学习库。

上面仅仅推荐了五个人工智能相关的库,准确点更应该说是机器学习或深度学习的框架,从流行程度来看,我们也大致能得出现在主流的人工智能领域研究方法也是深度学习和机器学习。这些库在不同领域和不同方面优势各不一样,本文推荐指数推荐依据,是根据适用场景和学习使用性价比主观推荐,请读者根据需求自行取用。

本公众号后续文章将主要基于 TensorFlow 2 进行学习说明。

五个常见 AI 开发库的更多相关文章

  1. [AI开发]Python+Tensorflow打造自己的计算机视觉API服务

    "与其停留在概念理论层面,不如动手去实现一个简单demo ."       ——鲁迅 没有源码都是耍流氓github 前言 目前提供AI开发相关API接口的公司有很多,国外如微软. ...

  2. [AI开发]centOS7.5上基于keras/tensorflow深度学习环境搭建

    这篇文章详细介绍在centOS7.5上搭建基于keras/tensorflow的深度学习环境,该环境可用于实际生产.本人现在非常熟练linux(Ubuntu/centOS/openSUSE).wind ...

  3. 干货分享:五大最适合学习AI开发的编程语言

    AI(人工智能)为应用开发者开创了一个全新的可能性.通过利用机器学习或深度学习,您可以生成更好的用户配置文件.个性化设置和推荐,或者整合更智能的搜索.语音界面或智能助手,或者以其他数种方式改进您的应用 ...

  4. Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) JAVA日志的前世今生 .NET MVC采用SignalR更新在线用户数 C#多线程编程系列(五)- 使用任务并行库 C#多线程编程系列(三)- 线程同步 C#多线程编程系列(二)- 线程基础 C#多线程编程系列(一)- 简介

    Python GUI之tkinter窗口视窗教程大集合(看这篇就够了) 一.前言 由于本篇文章较长,所以下面给出内容目录方便跳转阅读,当然也可以用博客页面最右侧的文章目录导航栏进行跳转查阅. 一.前言 ...

  5. 华为全栈AI技术干货深度解析,解锁企业AI开发“秘籍”

    摘要:针对企业AI开发应用中面临的痛点和难点,为大家带来从实践出发帮助企业构建成熟高效的AI开发流程解决方案. 在数字化转型浪潮席卷全球的今天,AI技术已经成为行业公认的升级重点,正在越来越多的领域为 ...

  6. [Lua游戏AI开发指南] 笔记零 - 框架搭建

    一.图书详情 <Lua游戏AI开发指南>,原作名: Learning Game AI Programming with Lua. 豆瓣:https://book.douban.com/su ...

  7. TensorFlow?PyTorch?Paddle?AI工具库生态之争:ONNX将一统天下

    作者:韩信子@ShowMeAI 深度学习实战系列:https://www.showmeai.tech/tutorials/42 本文地址:https://www.showmeai.tech/artic ...

  8. javaweb学习总结(二十五)——jsp简单标签开发(一)

    一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显得过于繁琐,不利于标签技术的推广, SUN公司为降低标签技术的学习难度,在JSP 2.0中定义了一个更为简单.便于编 ...

  9. [AI开发]将深度学习技术应用到实际项目

    本文介绍如何将基于深度学习的目标检测算法应用到具体的项目开发中,体现深度学习技术在实际生产中的价值,算是AI算法的一个落地实现.本文算法部分可以参见前面几篇博客: [AI开发]Python+Tenso ...

随机推荐

  1. UPC个人训练赛第十五场(AtCoder Grand Contest 031)

    传送门: [1]:AtCoder [2]:UPC比赛场 [3]:UPC补题场 参考资料 [1]:https://www.cnblogs.com/QLU-ACM/p/11191644.html B.Re ...

  2. UVA 1347"Tour"(经典DP)

    传送门 参考资料: [1]:紫书 题意: 欧几里得距离???? 题解: AC代码: #include<bits/stdc++.h> using namespace std; ; int n ...

  3. Canvas学习实践:一款简单的动画游戏

    最近学习了下Canvas绘图...突发奇想就有了下面这款简单的小游戏,纯属娱乐~ 废话不多说,直接上代码: <!DOCTYPE html> <html lang="zh&q ...

  4. PowerShell 拿到最近的10个系统日志

    我最近发现我的程序总是调用一些不清真的代码,于是在运行的时候就退出了,我想要拿到系统的日志知道我的程序是怎么退出的,我如何通过 PowerShell 拿到最近的10个系统日志.为什么需要拿到最新10个 ...

  5. nodejs + webpack4 + babel6 结合写Chrome浏览器插件记录(2)

    上来先来看下当前实现的效果吧. 前言 首先感谢第一篇留言鼓励的同学,最近各种繁杂的事,时间占用较多,但是也总抽空继续改造这个项目,期间遇到了各种Vue渲染的问题,常规的字符串渲染会在Chrome插件中 ...

  6. Java 学习笔记(8)——匿名对象与内部类

    一般在编写代码时可能会遇到这样的场景--在某些时候,我需要定义并某个类,但是只会使用这一次,或者是某个类对象只会使用一次,为它们专门取名可能会显的很麻烦.为了应对这种情况,Java中允许使用匿名对象和 ...

  7. torch or numpy

    黄色:重点 粉色:不懂 Torch 自称为神经网络界的 Numpy, 因为他能将 torch 产生的 tensor 放在 GPU 中加速运算 (前提是你有合适的 GPU), 就像 Numpy 会把 a ...

  8. 记一次 爬取LOL全皮肤原画保存到本地的实例

    #爬取lol全英雄皮肤 import re import traceback # 异常跟踪 import requests from bs4 import BeautifulSoup #获取html ...

  9. JVM性能优化系列-(1) Java内存区域

    1. Java内存区域 1.1 运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域.主要包括:程序计数器.虚拟机栈.本地方法栈.Java堆.方法区(运 ...

  10. Node.js 模块系统入门

    在编程领域中,模块是自包含的功能单元,可以跨项目共享和重用.它们使开发人员的生活更加轻松,因为我们可以使用它来增加应用程序的功能,而不必亲自编写这些功能.它还让我们可以组织和解耦代码,从而使应用程序更 ...