python深度学习框架学哪个

author author     2023-03-16     736

关键词:

Python 深度学习生态系统在这几年中的演变实属惊艳。pylearn2,已经不再被积极地开发或者维护,大量的深度学习库开始接替它的位置。这些库每一个都各有千秋。我们已经在 indico 的产品或者开发中使用了以下列表中的大部分的技术,但是对于剩下一些我们没有使用的,我将会借鉴他人的经验来帮助给出 Python 深度学习生态系统的清晰的、详尽的理解。
确切地说,我们将会关注:
Theano
Lasagne
Blocks
TensorFlow
Keras
MXNet
PyTorch
下面是对这 7 大 Python 深度学习框架的描述以及优缺点的介绍。
Theano
描述:Theano 是一个 Python 库,允许你定义、优化并且有效地评估涉及到多维数组的数学表达式。它与 GPUs 一起工作并且在符号微分方面表现优秀。
概述:Theano 是数值计算的主力,它支持了许多我们列表当中的其他的深度学习框架。Theano 由 Frédéric Bastien 创建,这是蒙特利尔大学机器学习研究所(MILA)背后的一个非常优秀的研究团队。它的 API 水平较低,并且为了写出效率高的 Theano,你需要对隐藏在其他框架幕后的算法相当的熟悉。如果你有着丰富的学术机器学习知识,正在寻找你的模型的精细的控制方法,或者想要实现一个新奇的或者不同寻常的模型,Theano 是你的首选库。总而言之,为了灵活性,Theano 牺牲了易用性。
优点:
灵活
正确使用时的高性能
缺点:
较高的学习难度
低水平的 API
编译复杂的符号图可能很慢
Lasagne
描述:在 Theano 上建立和训练神经网络的轻量级库
概述:因为 Theano 致力于成为符号数学中最先且最好的库,Lasagne 提供了在 Theano 顶部的抽象,这使得它更适合于深度学习。它主要由当前 DeepMind 研究科学家 Sander Dieleman 编写并维护。Lasagne 并非是根据符号变量之间的函数关系来指定网络模型,而是允许用户在层级思考,为用户提供了例如「Conv2DLayer」和「DropoutLayer」的构建块。Lasagne 在牺牲了很少的灵活性的同时,提供了丰富的公共组件来帮助图层定义、图层初始化、模型正则化、模型监控和模型训练。
优点:
仍旧非常灵活
比 Theano 更高级的抽象
文档和代码中包含了各种 Pasta Puns
缺点:
社区小
Blocks
描述:用于构建和训练神经网络的 Theano 框架
概述:与 Lasagne 类似,Blocks 是在 Theano 顶部添加一个抽象层使深度学习模型比编写原始的 Theano 更清晰、更简单、定义更加标准化。它是由蒙特利尔大学机器学习研究所(MILA)编写,其中一些人为搭建 Theano 和第一个神经网络定义的高级接口(已经淘汰的 PyLearn2)贡献了自己的一份力量。比起 Lasagne,Blocks 灵活一点,代价是入门台阶较高,想要高效的使用它有不小的难度。除此之外,Blocks 对递归神经网络架构(recurrent neural network architectures)有很好的支持,所以如果你有兴趣探索这种类型的模型,它值得一看。除了 TensorFlow,对于许多我们已经部署在 indico 产品中的 API,Blocks 是其首选库。
优点:
仍旧非常灵活
比 Theano 更高级的抽象
易于测试
缺点:
较高的学习难度
更小的社区
TensorFlow
描述:用于数值计算的使用数据流图的开源软件库
概述:TensorFlow 是较低级别的符号库(比如 Theano)和较高级别的网络规范库(比如 Blocks 和 Lasagne)的混合。即使它是 Python 深度学习库集合的最新成员,在 Google Brain 团队支持下,它可能已经是最大的活跃社区了。它支持在多 GPUs 上运行深度学习模型,为高效的数据流水线提供使用程序,并具有用于模型的检查,可视化和序列化的内置模块。最近,TensorFlow 团队决定支持 Keras(我们列表中下一个深度学习库)。虽然 TensorFlow 有着自己的缺点,但是社区似乎同意这一决定,社区的庞大规模和项目背后巨大的动力意味着学习 TensorFlow 是一次安全的赌注。因此,TensorFlow 是我们今天在 indico 选择的深度学习库。
优点:
由软件巨头 Google 支持
非常大的社区
低级和高级接口网络训练
比基于 Theano 配置更快的模型编译
完全地多 GPU 支持
缺点:
虽然 Tensorflow 正在追赶,但是最初在许多基准上比基于 Theano 的慢。
RNN 支持仍不如 Theano
Keras
描述:Python 的深度学习库。支持 Convnets、递归神经网络等。在 Theano 或者 TensorFlow 上运行。
概述:Keras 也许是水平最高,对用户最友好的库了。由 Francis Chollet(Google Brain 团队中的另一个成员)编写和维护。它允许用户选择其所构建的模型是在 Theano 上或是在 TensorFlow 上的符号图上执行。Keras 的用户界面受启发于 Torch,所以如果你以前有过使用 Lua 语言的机器学习经验,Keras 绝对值得一看。由于部分非常优秀的文档和其相对易用性,Keras 的社区非常大并且非常活跃。最近,TensorFlow 团队宣布计划与 Keras 一起支持内置,所以很快 Keras 将是 TensorFlow 项目的一个分组。
优点:
可供选择的 Theano 或者 TensorFlow 后端
直观、高级别的端口
更易学习
缺点:
不太灵活,比其他选择更规范
MXNet
描述:MXNet 是一个旨在提高效率和灵活性的深度学习框架。
概述:MXNet 是亚马逊(Amazon)选择的深度学习库,并且也许是最优秀的库。它拥有类似于 Theano 和 TensorFlow 的数据流图,为多 GPU 配置提供了良好的配置,有着类似于 Lasagne 和 Blocks 更高级别的模型构建块,并且可以在你可以想象的任何硬件上运行(包括手机)。对 Python 的支持只是其冰山一角—MXNet 同样提供了对 R、Julia、C++、Scala、Matlab,和 Javascript 的接口。如果你正在寻找最佳的性能,选择 MXNet 吧,但是你必须愿意处理与之相对的一些 MXNet 的怪癖。
优点:
速度的标杆
非常灵活
缺点:
最小的社区
比 Theano 更困难的学习难度
PyTorch
描述:Python 中的张量(Tensors)和动态神经网络,有着强大的 GPU 加速。
概述:刚刚放出一段时间,PyTorch 就已经是我们 Python 深度学习框架列表中的一个新的成员了。它是从 Lua 的 Torch 库到 Python 的松散端口,由于它由 Facebook 的 人工智能研究团队(Artificial Intelligence Research team (FAIR))支持且因为它用于处理动态计算图(Theano,TensorFlow 或者其他衍生品没有的特性,编译者注:现在 TensorFlow 好像支持动态计算图),它变得非常的有名。PyTorch 在 Python 深度学习生态系统将扮演怎样的角色还不得而知,但所有的迹象都表明,PyTorch 是我们列表中其他框架的一个非常棒的选择。
优点:
来自 Facebook 组织的支持
完全地对动态图的支持
高级和低级 API 的混合
缺点:
比其他选择,PyTorch 还不太成熟
参考技术A 深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。晦涩难懂的概念,略微有些难以理解,但是在其高冷的背后,却有深远的应用场景和未来。
深度学习是实现机器学习的一种方式或一条路径。其动机在于建立、模拟人脑进行分析学习的神经网络,它模仿人脑的机制来解释数据。比如其按特定的物理距离连接;而深度学习使用独立的层、连接,还有数据传播方向,比如最近大火的卷积神经网络是第一个真正多层结构学习算法,它利用空间相对关系减少参数数目以提高训练性能,让机器认知过程逐层进行,逐步抽象,从而大幅度提升识别的准确性和效率。
常见的框架有:CNTK、Caffe2、Keras、Lasagne、PaddlePaddle、PyTorch、TensorFlow、Theano等。

深度学习之kerasvstensorflowvspytorch三种深度学习框架

深度学习是人工智能的子集,深度学习模仿人脑处理数据的神经通路,将其用于决策、检测对象、识别语音和翻译语言。它从非结构化和未标记的数据中学习,无需人工监督或干预。深度学习通过使用人工神经网络的... 查看详情

《深度学习与计算机视觉算法原理框架应用》pdf+《深度学习之pytorch实战计算机视觉》pdf

...最前沿的趋势进行了简单探讨。第2篇实例精讲,介绍了Python基础、OpenCV基础、最简单的分类神经网络、图像识别、利用Caffe做回归、迁移学习和模型微调、目标检测、度量学习和图像风格迁移等常见的计算机视觉应用场景。《深... 查看详情

pytorch版《动手学深度学习》开源了,最美dl书遇上最赞dl框架

想要入门最前沿的深度学习,想要玩最常见的深度学习框架?那就用PyTorch版的《动手学深度学习》吧,零基础也能入门DL。李沐等人的开源中文书《动手学深度学习》现在有PyTorch版实现了。不论是原书中的示例代码&#... 查看详情

python都需要那些技术???

现在热门的Python开发技术有MySQL、Flask框架、Django框架、Tornado框架、数据爬取、验证码破解、Fiddler工具、多线程爬虫、数据的存储、破解加密、Scrapy框架、Scrapy-Redis分布式、代理池和Cookie池、深度学习框架、数据分析、深度学习... 查看详情

参考《深度学习之pytorch实战计算机视觉》pdf

...之PyTorch实战计算机视觉》。学到人工智能的基础概念及Python编程技能,掌握PyTorch的使用方法,学到深度学习相关的理论知识,比如卷积神经网络、循环神经网络、自动编码器,等等。在掌握深度学习理论和编程技能之后,还会... 查看详情

pytorch框架书籍推荐:《动?学深度学习pytorch版》

下载地址链接:https://pan.baidu.com/s/1ST5kQ3MSWV1XPM-_qB5jCA提取码:lmm5本书的github地址:https://github.com/ShusenTang/Dive-into-DL-PyTorch 一位北大的老哥把《动手学深度学习》翻译成了Pytorch版           查看详情

嵌入式学深度学习:1pytorch框架搭建(代码片段)

嵌入式学深度学习:1、Pytorch框架搭建1、介绍2、Pytorch开发环境搭建2.1、查看GPU是否支持CUDA2.2、安装Miniconda2.3、使用Conda安装pytorch2.4、安装常用库3、简单使用验证1、介绍深度学习是机器学习的一种,如下图:目前深... 查看详情

pytorch是本科学的吗

...建和训练深度学习模型。PyTorch支持多种编程语言,包括Python、C++和JavaScript,可以让开发者更轻松地实现自己的想法。PyTorch也支持多种深度学习框架,如TensorFlow、Keras、Caffe2等,可以让开发者更轻松地构建和训练深度学习模型。... 查看详情

深度学习学起来会很难吗?零基础可以学吗?

优就业的深度学习课程怎么样?深度学习如果没有一定基础学习起来是有难度的零基础学会很吃力深度学习(deeplearning)是机器学习的分支,是一种以人工神经网络为架构,对数据进行表征学习的算法。至今已有数种深度学习框... 查看详情

一线开发者在reddit上讨论深度学习框架:pytorch和tensorflow到底哪个更好?

本文标签:  机器学习TensorFlowGoogle深度学习框架分布式机器学习PyTorch 近日,Reddit用户cjmcmurtrie发了一个主题为「PyTorchvs.TensorFlow」的讨论帖,想要了解这两大流行的框架之间各自有什么优势。原帖地址:https://redd.it/5w... 查看详情

本科生学深度学习,搭建环境,再不入坑就晚了(代码片段)

...6、总结        最近没怎么写游戏了,一直在写python,是因为我对深度学习感兴趣,想学习一下,同时也觉得AI是未来,所以去学习了一段时间。1、目的AI和游戏的结合是强化学习,强化学习是深度学... 查看详情

本科生学深度学习,搭建环境,再不入坑就晚了(代码片段)

...6、总结        最近没怎么写游戏了,一直在写python,是因为我对深度学习感兴趣,想学习一下,同时也觉得AI是未来,所以去学习了一段时间。1、目的AI和游戏的结合是强化学习,强化学习是深度学... 查看详情

李沐亚马逊资深首席科学家-动手学深度学习v2-介绍篇

讲师介绍李沐是亚马逊资深首席科学家、《动手学深度学习》和深度学习框架MXNet的主要作者。他本科毕业于上海交通大学计算机系ACM班,2012年前往CMU读博,师从机器学习大师AlexSmola和分布式系统教授DaveAndersen。读博期... 查看详情

麦子深度学习之-机器学习算法高级进阶

麦子深度学习之-机器学习算法高级进阶随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到程序开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教... 查看详情

基于pytorch热门深度学习框架从零开发nlp聊天机器人

百度云盘 NLP要学习和应用的好,首先是心理学的基础根基要打牢。必学科目:1.普通心理学,关于脑神经运作的基础和心理状态的基本分类。细分要研究认知心理学和情感管理,再细分,要多学习逻辑思维。2.发展心理学,... 查看详情

主流的深度学习框架基本知识

...章内容1、TensorFlow2、Keras3、MXNet4、CNTK5、PyTorch 常见的深度学习框架常见的深度学习框架有TensorFlow、Caffe、Theano、Keras、PyTorch、MXNet等,如下图所示。这些深度学习框架被应用于计算机视觉、语音识别、自然语言处理与生物信... 查看详情

从tensorflow到pytorch:九大深度学习框架哪款最适合你?

开源的深度学习神经网络正步入成熟,而现在有许多框架具备为个性化方案提供先进的机器学习和人工智能的能力。那么如何决定哪个开源框架最适合你呢?本文试图通过对比深度学习各大框架的优缺点,从而为各位读者提供一... 查看详情

对比学习:《深度学习之pytorch》《pytorch深度学习实战》+代码

PyTorch是一个基于Python的深度学习平台,该平台简单易用上手快,从计算机视觉、自然语言处理再到强化学习,PyTorch的功能强大,支持PyTorch的工具包有用于自然语言处理的AllenNLP,用于概率图模型的Pyro,扩展了PyTorch的功能。通... 查看详情