深度学习框架指南

一颗小树x 一颗小树x     2022-12-06     477

关键词:

前言

本文介绍深度学习的框架指南,基本是免费和开源的。

包括:Keras、PyTorch、TensorFlow、Theano、MXNet、Caffe2、CNTK、Chainer等。

文章结构分为“目录版”和“简介版”。

目录

前言

一、目录版

1.1 Keras

1.2 PyTorch

1.3 TensorFlow

1.4 Theano

1.5 MXNet

1.6 Caffe2

1.7 CNTK

1.8 Chainer

1.9 其他

二、简介版


一、目录版

1.1 Keras

  • 目前已经合并到TensorFlow2.x中,使用和之前一样便捷且高效。
  • Keras - 一种高级神经网络 API,用 Python 编写,能够在 TensorFlow、CNTK 或 Theano 之上运行
  • keras-contrib - Keras 社区贡献
  • Hyperas - Keras + Hyperopt:一个非常简单的超参数包装器
  • Elephas - 使用 Keras 和 Spark 进行分布式深度学习
  • Hera - 训练/评估 Keras 模型,将指标流式传输到浏览器中的仪表板。
  • dist-keras - 分布式深度学习,专注于分布式训练
  • Conx - 深度学习的入口

1.2 PyTorch

  • PyTorch - Python 中的张量和动态神经网络,具有强大的 GPU 加速
  • torchvision - 特定于计算机视觉的数据集、转换和模型
  • torchtext - 文本和 NLP 的数据加载器和抽象
  • torchaudio - PyTorch的音频库
  • ignite - 帮助在 PyTorch 中训练神经网络的高级库
  • PyToune - PyTorch的类似 Keras 的框架和实用程序
  • skorch - 包装 pytorch 的 scikit-learn 兼容神经网络库
  • PyTorchNet - 训练神经网络的抽象
  • Aorun - 打算使用 PyTorch 作为后端实现类似于 Keras 的 API。
  • pytorch_geometric - PyTorch 的几何深度学习扩展库

1.3 TensorFlow

  • TensorFlow - Google 使用数据流图进行可扩展机器学习的计算
  • TensorLayer - 面向研究人员和工程师的深度学习和强化学习库。
  • TFLearn - 深度学习库,具有更高级别的 TensorFlow API
  • Sonnet - DeepMind基于 TensorFlow 的神经网络库
  • TensorForce - 一个用于应用强化学习的 TensorFlow 库
  • tensorpack - TensorFlow 上的神经网络训练接口
  • Polyaxon - 一个帮助我们构建、管理和监控深度学习模型的平台
  • Horovod - TensorFlow 的分布式训练框架
  • tfdeploy - 部署张量流图以进行快速评估并导出到运行 numpy 的无张量流环境
  • hiptensorflow 启用 ROCm/HIP 的 Tensorflow
  • TensorFlow Fold - 使用 TensorFlow 中的动态计算图进行深度学习
  • tensorlm - 带有 RNN 的字符和单词级别的文本生成/语言模型的包装库
  • TensorLight - TensorFlow 的高级框架
  • Mesh TensorFlow - 模型并行变得更容易

1.4 Theano

警告:Theano 开发已停止

  • Theano - 是一个 Python 库,允许我们定义、优化和评估数学表达式
  • Lasagne - 在 Theano Lasagne 附加组件中构建和训练神经网络的轻量级库...
  • nolearn - scikit-learn 兼容的神经网络库
  • Blocks - 用于构建和训练神经网络的 Theano 框架
  • platoon - Theano 的多 GPU 迷你框架
  • NeuPy - NeuPy 是一个用于人工神经网络和深度学习的 Python 库
  • scikit-neuralnetwork - 没有学习悬崖的深度神经网络
  • Theano-MPI - 用于训练在 Theano 中构建的深度学习模型的 MPI 并行框架

1.5 MXNet

  • MXNet - 具有动态、变异感知数据流调度器的轻量级、便携、灵活的分布式/移动深度学习
  • Gluon - 一个清晰、简洁、简单但功能强大且高效的深度学习 API(现已包含在 MXNet 中)
  • MXbox - 用于 mxnet 框架的简单、高效和灵活的视觉工具箱。
  • gluon-cv - 提供计算机视觉中最先进的深度学习模型的实现。
  • gluon-nlp - NLP 变得简单
  • MXNet MXNet 的 HIP 端口

1.6 Caffe2

  • Caffe - 深度学习的快速开放框架
  • Caffe2 - 一个轻量级、模块化和可扩展的深度学习框架
  • hipCaffe Caffe 的 HIP 端口

1.7 CNTK

  • CNTK - Microsoft Cognitive Toolkit (CNTK),一个开源深度学习工具包

1.8 Chainer

1.9 其他 

  • Neon - 致力于在所有硬件上实现最佳性能的英特尔 Nervana™ 参考深度学习框架
  • Tangent - 纯 Python 中的源到源可调试派生
  • autograd - 有效地计算 numpy 代码的导数
  • Myia - 深度学习框架(pre-alpha)
  • nnabla - 索尼的神经网络库

二、简介版

2.1 Keras

Keras 是一个用 Python 编写的深度学习 API,运行在机器学习平台TensorFlow之上。它的开发重点是实现快速实验。

(目前已经合并到TensorFlow2.x中,使用和之前一样便捷且高效。)

Keras 和 TensorFlow 2

TensorFlow 2是一个端到端的开源机器学习平台。我们可以将其视为可微分编程的基础设施层 。它结合了四个关键能力:

  • 在 CPU、GPU 或 TPU 上高效执行低级张量运算。
  • 计算任意可微表达式的梯度。
  • 将计算扩展到许多设备,例如数百个 GPU 的集群。
  • 将程序(“图形”)导出到外部运行时,例如服务器、浏览器、移动设备和嵌入式设备。

Keras 是 TensorFlow 2 的高级 API:一个用于解决机器学习问题的平易近人、高效的接口,专注于现代深度学习。它为开发和交付具有高迭代速度的机器学习解决方案提供了必要的抽象和构建块。

Keras 使工程师和研究人员能够充分利用 TensorFlow 2 的可扩展性和跨平台功能:我们可以在 TPU 或大型 GPU 集群上运行 Keras,可以导出Keras 模型以在浏览器或移动设备上运行设备。

  • Keras - 一种高级神经网络 API,用 Python 编写,能够在 TensorFlow、CNTK 或 Theano 之上运行
  • keras-contrib - Keras 社区贡献
  • Hyperas - Keras + Hyperopt:一个非常简单的超参数包装器
  • Elephas - 使用 Keras 和 Spark 进行分布式深度学习
  • Hera - 训练/评估 Keras 模型,将指标流式传输到浏览器中的仪表板。
  • dist-keras - 分布式深度学习,专注于分布式训练
  • Conx - 深度学习的入口

2.2 PyTorch

PyTorch 是一个 Python 包,它提供了两个高级功能:

  • 具有强大 GPU 加速的张量计算(如 NumPy)
  • 基于磁带的 autograd 系统构建的深度神经网络

我们可以在需要时调用我们 Python 包(例如 NumPy、SciPy 和 Cython)来扩展 PyTorch。

  • PyTorch - Python 中的张量和动态神经网络,具有强大的 GPU 加速
  • torchvision - 特定于计算机视觉的数据集、转换和模型
  • torchtext - 文本和 NLP 的数据加载器和抽象
  • torchaudio - PyTorch的音频库
  • ignite - 帮助在 PyTorch 中训练神经网络的高级库
  • PyToune - PyTorch的类似 Keras 的框架和实用程序
  • skorch - 包装 pytorch 的 scikit-learn 兼容神经网络库
  • PyTorchNet - 训练神经网络的抽象
  • Aorun - 打算使用 PyTorch 作为后端实现类似于 Keras 的 API。
  • pytorch_geometric - PyTorch 的几何深度学习扩展库

2.3 TensorFlow

TensorFlow是一个端到端的机器学习开源平台。它拥有一个由工具、 库和 社区资源组成的全面、灵活的生态系统 ,使研究人员能够推动 ML 的最新技术,而开发人员可以轻松构建和部署 ML 驱动的应用程序。

TensorFlow 最初由 Google 机器智能研究组织内的 Google Brain 团队的研究人员和工程师开发,用于进行机器学习和深度神经网络研究。该系统的通用性足以适用于各种其他领域。

TensorFlow 提供稳定的Python 和C++ API,以及其他语言的非保证向后兼容 API 。

  • TensorFlow - Google 使用数据流图进行可扩展机器学习的计算
  • TensorLayer - 面向研究人员和工程师的深度学习和强化学习库。
  • TFLearn - 深度学习库,具有更高级别的 TensorFlow API
  • Sonnet - DeepMind基于 TensorFlow 的神经网络库
  • TensorForce - 一个用于应用强化学习的 TensorFlow 库
  • tensorpack - TensorFlow 上的神经网络训练接口
  • Polyaxon - 一个帮助我们构建、管理和监控深度学习模型的平台
  • Horovod - TensorFlow 的分布式训练框架
  • tfdeploy - 部署张量流图以进行快速评估并导出到运行 numpy 的无张量流环境
  • hiptensorflow ![alt text][amd] - 启用 ROCm/HIP 的 Tensorflow
  • TensorFlow Fold - 使用 TensorFlow 中的动态计算图进行深度学习
  • tensorlm - 带有 RNN 的字符和单词级别的文本生成/语言模型的包装库
  • TensorLight - TensorFlow 的高级框架
  • Mesh TensorFlow - 模型并行变得更容易

2.4 Theano

警告:Theano 开发已停止

  • Theano - 是一个 Python 库,允许我们定义、优化和评估数学表达式
  • Lasagne - 在 Theano Lasagne 附加组件中构建和训练神经网络的轻量级库...
  • nolearn - scikit-learn 兼容的神经网络库
  • Blocks - 用于构建和训练神经网络的 Theano 框架
  • platoon - Theano 的多 GPU 迷你框架
  • NeuPy - NeuPy 是一个用于人工神经网络和深度学习的 Python 库
  • scikit-neuralnetwork - 没有学习悬崖的深度神经网络
  • Theano-MPI - 用于训练在 Theano 中构建的深度学习模型的 MPI 并行框架

2.5 MXNet

Apache MXNet 是一个为提高效率灵活性而设计的深度学习框架。它允许我们混合 符号和命令式编程, 以最大限度地提高效率和生产力。在其核心,MXNet 包含一个动态依赖调度程序,可自动动态并行化符号和命令式操作。在其之上的图形优化层使符号执行速度快且内存高效。MXNet 便携且轻量级,可扩展到许多 GPU 和机器。

MXNet 不仅仅是一个深度学习项目。它是一个 以实现人工智能民主化为使命的社区。它是 构建深度学习系统的蓝图和指南的集合,以及针对黑客的 DL 系统的有趣见解。

  • MXNet - 具有动态、变异感知数据流调度器的轻量级、便携、灵活的分布式/移动深度学习
  • Gluon - 一个清晰、简洁、简单但功能强大且高效的深度学习 API(现已包含在 MXNet 中)
  • MXbox - 用于 mxnet 框架的简单、高效和灵活的视觉工具箱。
  • gluon-cv - 提供计算机视觉中最先进的深度学习模型的实现。
  • gluon-nlp - NLP 变得简单
  • MXNet  MXNet 的 HIP 端口

2.6 Caffe2

Caffe 是一个深度学习框架,考虑到了表达、速度和模块化。它由伯克利人工智能研究 ( BAIR )/伯克利视觉与学习中心 (BVLC) 和社区贡献者开发。

自定义分布Intel Caffe(针对 CPU 进行了优化并支持多节点),尤其是 Intel® Xeon 处理器。OpenCL Caffe例如用于 AMD 或 Intel 设备。

  • Caffe - 深度学习的快速开放框架
  • Caffe2 - 一个轻量级、模块化和可扩展的深度学习框架
  • hipCaffe ![alt text][amd] - Caffe 的 HIP 端口

2.7 CNTK

  • CNTK - Microsoft Cognitive Toolkit (CNTK),一个开源深度学习工具包

Microsoft 认知工具包是一个统一的深度学习工具包,它通过有向图将神经网络描述为一系列计算步骤。在这个有向图中,叶节点表示输入值或网络参数,而其他节点表示对其输入的矩阵运算。

CNTK 允许用户轻松实现和组合流行的模型类型,例如前馈 DNN、卷积网络 (CNN) 和循环网络 (RNN/LSTM)。它通过跨多个 GPU 和服务器的自动微分和并行化实现随机梯度下降(SGD,误差反向传播)学习。

2.8 Chainer

Chainer是一个基于 Python 的深度学习框架,旨在提高灵活性。它提供基于运行定义方法(又名动态计算图)的自动微分 API以及面向对象的高级 API 来构建和训练神经网络。它还支持使用CuPy进行高性能训练和推理的CUDA/cuDNN 。

2.9 其他

  • Neon - 致力于在所有硬件上实现最佳性能的英特尔 Nervana™ 参考深度学习框架
  • Tangent - 纯 Python 中的源到源可调试派生
  • autograd - 有效地计算 numpy 代码的导数
  • Myia - 深度学习框架(pre-alpha)
  • nnabla - 索尼的神经网络库

本文只供参考学习,谢谢!!

2023年的深度学习入门指南-给openaiapi写前端(代码片段)

2023年的深度学习入门指南(2)-给openaiAPI写前端上一篇我们说了,目前的大规模预训练模型技术还避免不了回答问题时出现低级错误。但是其实,人类犯的逻辑错误也是层出不穷。比如,有人就认为要想学好chatgpt,... 查看详情

深度学习调参(炼丹)指南来了!

 Datawhale干货 方向:深度学习调参,编辑:机器之心「大量的实践经验已被提炼成这份强大的深度学习模型调参指南。」——GeoffreyHinton。众所周知,AI的超参数决定着模型学习效果和速度。相比普通机器学习任... 查看详情

分享《tensorflow学习指南:深度学习系统构建详解》英文pdf+源代码+部分中文pdf

...dw更多分享:http://blog.51cto.com/14050756《TensorFlow学习指南:深度学习系统构建详解》英文PDF+源代码+部分中文PDF英文完整版PDF,242页,带目录书签,彩色配图,文字可以复制粘贴;中文部分PDF,包含第1、2、3章,文字可以复制粘贴... 查看详情

深度学习装机指南:从gpu到显示器,全套硬件推荐

✅作者简介:热爱科研的算法开发者,Python、Matlab项目可交流、沟通、学习。 查看详情

收藏!超全的github计算机算法机器学习深度学习的面试指南集锦

这是github上的计算机基础、算法、机器学习、深度学习的面试算法指南的汇总,非常值得收藏。1、leetcode题解,记录自己的leetcode解题之路github上35万星https://github.com/azl397985856/leetcode2、收录常见面试算法题,包括 剑指offer&nbs... 查看详情

深度学习模型超参数搜索实用指南

要知道,与机器学习模型不同,深度学习模型里面充满了各种超参数。而且,并非所有参数变量都能对模型的学习过程产生同样的贡献。考虑到这种额外的复杂性,在一个多维空间中找到这些参数变量的最佳配置并不是件容易的... 查看详情

openpai:大规模人工智能集群管理平台介绍及任务提交指南

 产品渊源:随着人工智能技术的快速发展,各种深度学习框架层出不穷,为了提高效率,更好地让人工智能快速落地,很多企业都很关注深度学习训练的平台化问题。例如,如何提升GPU等硬件资源的利用率?如何节省硬件投... 查看详情

深度学习及机器学习框架对比摘要

对比深度学习十大框架:TensorFlow并非最好?TensorFlow与主流深度学习框架对比五大主流深度学习框架对比:MXNET是最好选择主流开源深度学习框架对比分析主流深度学习框架对比深度学习框架的评估与比较几种机器学习框架的对... 查看详情

深度学习装机指南:从gpu到显示器,全套硬件推荐

前言:硬件设备,是任何一名深度学习er不可或缺的核心装备。各位初级调参魔法师们,你们有没有感到缺少那一根命中注定的魔杖?可是,各种CPU、GPU、内存条、外设,那么多品牌种类型号参数,到底该怎么选?文章内容较长... 查看详情

theano学习指南--深度置信网络(dbn)(源码)

欢迎fork我的github:https://github.com/zhaoyu611/DeepLearningTutorialForChinese最近在学习Git,所以正好趁这个机会,把学习到的知识实践一下~看完DeepLearning的原理,有了大体的了解,但是对于theano的代码,还是自己撸... 查看详情

detectron2使用指南(代码片段)

Detectron2是Facebook开源的深度学习的目标检测(ObjectDetection)框架,支持深度学习中常见的目标检测、实例分割、姿态估计等任务。GitHub:https://github.com/facebookresearch/detectron2安装Detectron2参考支持从源码构建再安装... 查看详情

深度学习框架介绍(代码片段)

深度学习框架介绍1.常见深度学习框架对比2.TensorFlow的特点3.TensorFlow的安装4.Tenssorlfow使用技巧1.常见深度学习框架对比tensorflow的github:2.TensorFlow的特点官网:https://www.tensorflow.org/语言多样(LanguageOptions)TensorFlo 查看详情

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

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

主流深度学习框架对比(tensorflowkerasmxnetpytorch)

目录主流深度学习框架对比(TensorFlow、Keras、MXNet、PyTorch)一、简介二、流行度 查看详情

基于opengles的深度学习框架编写

基于OpenGLES的深度学习框架编写背景与工程定位背景项目组基于深度学习实现了视频风格化和人像抠图的功能,但这是在PC/服务端上跑的,现在需要移植到移动端,因此需要一个移动端的深度学习的计算框架。同类型的库caffe-andr... 查看详情

go微服务框架go-micro深度学习-目录

go微服务框架go-micro深度学习(一)整体架构介绍go微服务框架go-micro深度学习(二)入门例子go微服务框架go-micro深度学习(三)Registry服务的注册和发现go微服务框架go-micro深度学习(四)rpc方法调用过程详解go微服务框架go-micro深度学习(五)s... 查看详情

cssflexbox学习指南工具与框架

...理论有些复杂,但幸运的是,我们可以借助开放的网络来学习并逐步掌握它。在本文中,我们整合了一些最佳的Flexbox学习资源,它们可以帮助你了解Flexbox的方方面面。涉及什么是Flexbox,以及如何有效地使用它。Flexbox学习指南CS... 查看详情

深度学习-pytorch框架实战系列

深度学习-PyTorch框架实战系列PyTorch是一个开源的Python机器学习库,基于Torch,用于自然语言处理等应用程序。2017年1月,由Facebook人工智能研究院(FAIR)基于Torch推出了PyTorch。它是一个基于Python的可续计算包,提供两个高级功能... 查看详情