松鼠乐园 松鼠乐园
  • 注册
  • 登录
  • 首页
  • 快捷入口
    • Vue
    • Tensorflow
    • Springboot
    • 语言类
      • CSS
      • ES5
      • ES6
      • Go
      • Java
      • Javascript
    • 工具类
      • Git
      • 工具推荐
    • 服务器&运维
      • Centos
      • Docker
      • Linux
      • Mac
      • MySQL
      • Nginx
      • Redis
      • Windows
    • 资源类
      • 论文
      • 书籍推荐
      • 后端资源
      • 前端资源
      • html网页模板
      • 代码
    • 性能优化
    • 测试
  • 重大新闻
  • 人工智能
  • 开源项目
  • Vue2.0从零开始
  • 广场
首页 › 人工智能 › 五个一定要了解的深度学习框架

五个一定要了解的深度学习框架

迦娜王
2年前人工智能
516 0 1
对于学习数据 CSDN编者按】几天前,浙江大学的19岁大学生、WWDC 19奖学金得主俞佳兴,作为CSDN的特邀作者,为大家奉上了来自美国圣何塞WWDC现场的图片和采访。那么,为何19岁的他,就能出国参加如此盛大的开发者大会?作为00后的他,如何看待苹果生态?一起走进他的WWDC行纪吧! 科学的同学来说,从头开始实现神经网络,会让你理解很多有趣的东西。但是,我并不认为在真实数据集上构建深度学习模型是个明智的做法,除非你有数天或数周的时间来等待模型的构建。那么对于绝大部分无法获得无限资源的人来说,使用易于使用的开源深度学习框架,我们可以立即实现如卷积神经网络这样的复杂模型。 在本文中,我将介绍5个超级有用的深度学习框架,同时比较每个框架,以了解我们何时何地可以使用哪个框架。

目录

  1. 什么是深度学习框架
  2. TensorFlow
  3. Keras
  4. PyTorch
  5. Caffe
  6. Deep Learning4j
  7. 比较这些深度学习框架

一、 什么是深度学习框架

让我们用一个例子来理解这个概念。 考虑下面的图像集合:
此图像中有各种类别,猫、骆驼、鹿、大象等。我们的任务是将这些图像分类到相应的类(或类别)中。Google搜索告诉我们,卷积神经网络(CNN)对于此类图像分类任务非常有效。所以我们需要去实现这个模型,但是如果你开始从头开始编写CNN,那么获得工作模型将是几天后(甚至是几周),而这就是深度学习框架真正改变了这尴尬的局面。
无须写上百行代码,我们仅仅需要使用一个适合的框架去帮助我们快速建立这样的模型。以下是良好深度学习框架的一些主要特征:
  1. 针对性能进行了优化
  2. 易于理解和编码
  3. 良好的社区支持
  4. 并行化进程以减少计算
  5. 自动计算渐变

二、 TensorFlow

TensorFlow由Google Brain团队的研究人员和工程师开发。它是深度学习领域中最常用的软件库(尽管其他人正在迅速赶上)。
TensorFlow如此受欢迎的最大原因是,它支持多种语言来创建深度学习模型。比如Python,C 和R语言,它有适当的文档的演练指导。制作TensorFlow有很多组件,其中比较突出的两个是:
  1. TensorBoard:使用数据流图帮助实现有效的数据可视化
  2. TensorFlow:用于快速部署新算法/实验
TensorFlow的灵活架构使我们能够在一个或者多个CPU(以及GPU)上部署我们的深度学习模型。以下是TensorFlow的几个常见用例:
  1. 基于文本的应用程序:语言检测、文本摘要
  2. 图像识别:图像字幕、人脸识别、物体检测
  3. 声音识别
  4. 时间序列分析
  5. 视频分析
安装TensorFlow也是一项非常简单的任务: 仅适用于CPU:
对于支持CUDA的GPU卡:

三、 Keras

对于Python爱好者来说,Keras是你开始深度学习之旅的完美框架。Keras是用Python编写的,可以运行在TensorFlow(以及CNTK和Theano)之上。TensorFlow接口可能有点挑战性,因为它是一个低级库,新用户可能会很难理解某些实现。另一方面,Keras是一个高级API,开发的重点是实现快速实验。因此,如果想要快速结果,Keras将自动处理核心任务并生成输出。 Keras支持卷积神经网络和递归神经网络。它可以在CPU和GPU上无缝运行。同时,Keras有助于深度学习初学者正确理解复杂的模型,它旨在最大限度地减少用户操作,并使模型非常容易理解。 我们可以将Keras的模型大致分为两类: 1. 顺序:模型的各层以顺序方式定义,这意味着当我们训练深度学习模型时,这些层是按顺序实现的。以下是顺序模型的示例:
2. Keras功能API:通常用于定义复杂模型,例如多输出模型或具有共享层的模型,查看以下代码以实际方式理解:
Keras有多种架构,如下所述,用于解决各种各样的问题
  1. VGG16
  2. VGG19
  3. InceptionV3
  4. Mobilenet和其他
你可以参考官方Keras文档,以详细了解框架的工作原理:https://keras.io/ 仅仅使用一行代码就能够安装Keras:

四、 PyTorch

PyTorch是我所研究的所有框架中最灵活的,它是Torch深度学习框架的一个端口,可用于构建深度神经网络和执行Tensor计算。Torch是一个基于Lua的框架,而PyTorch是在Python上运行的,使用动态计算图,它的Autogard软件包从tensors中构建计算图并自动计算梯度。Tensors是多维数组,就像numpy的ndarrays一样,也可以在GPU上运行。 PyTorch不是使用具有特定功能的预定义图形,而是为我们提供了一个构建计算图形的框架,甚至可以在运行时更改它们。这对于我们不知道在创建神经网络时应该需要多少内存的情况很有用。 你可以使用PyTorch处理各种深度学习挑战,包括:
  1. 图像(检测、分类等)
  2. 文本(NLP)
  3. 强化学习

五、 Caffe

Caffe是面向图像处理领域的另一种流行的深度学习框架。作者是贾扬清,加州大学伯克利的博士,现就职于阿里巴巴,担任技术副总裁岗位,领导大数据计算平台的研发工作。需要注意的是,Caffe对循环网络和语言建模的支持不如上述三个框架。但是,Caffe脱颖而出的是处理和学习图像的速度。这很容易成为主要的USP。(USP指的是Unique Selling Proposition,又称创意理论,其特点是必须向受众陈述产品的特点,同时这个特点必须是独特的、必须能够引起销售)
Caffe为C、C 、Python、Matlab等接口以及传统的命令行提供了坚实的支持。Caffe Model Zoo(大量的在大数据集上预训练的可供下载的模型)框架允许我们访问可用于解决深度学习问题的预训练网络、模型和权重。这些模型适用于以下任务:
  1. 简单回归
  2. 大规模的视觉分类
  3. 用于图像相似性的暹罗网络(Siamese Networks)
  4. 语音和机器人应用
你可以查看Caffe的安装和文档以获取更多详细信息

六、DeepLearning4j

对于Java程序员,这是理想的深度学习框架。DeepLearning4j在java中实现,因此与Python相比更高效,它使用称为ND4J的张量库,提供了处理n维数组的能力。这个框架还支持GPU和CPU。 DeepLearning4j将加载数据和训练算法的任务视为单独的过程,这种功能分离提供了很大的灵活性。它同时也适用于不同的数据类型:
  1. 图片
  2. CSV
  3. 纯文本等
可以使用DeepLearning4j构建的深度学习模型有:
  1. 卷积神经网络(CNN)
  2. 递归神经网络(RNN)
  3. 长短记忆(LSTM)和许多其他架构

七、 五个深度学习框架的对比

我们已经介绍了五个最流行的深度学习框架。每个都有它自己独特的功能集,有些框架可以很好地处理图像数据,但无法解析文本数据。其他框架在图像和文本数据方面表现良好,但其内部工作可能难以理解。下面我们将使用以下标准比较我们的五个深度学习框架:
  1. 社区支持
  2. 它们用到的语言
  3. 接口
  4. 支持预训练模型
下面这个表格是这些框架的对比:
所有这些框架都是开源的,支持CUDA并且有预训练模型来帮助您入门。但是,什么是正确的起点,应该选择哪个框架来构建你的(初始)深度学习模型?

1. TensorFlow

TensorFlow适用于图像和基于序列的数据。如果您是深度学习的初学者,或者对线性代数和微积分等数学概念缺乏扎实的理解,那么TensorFlow的陡峭学习曲线可能会让人望而生畏。对于刚刚起步的人来说,这方面可能很复杂。我的建议是继续练习,继续探索社区。一旦您对框架有了很好的理解,实现深度学习模型对您来说将非常容易。

2. Keras

Keras是一个非常可靠的框架,可以开始您的深度学习之旅。如果您熟悉Python并且没有进行一些高级研究或开发一些特殊类型的神经网络,那么Keras就适合您。它更多的是让你取得成果,而不是陷入模型错综复杂的困境。 因此,如果您获得与图像分类或序列模型相关的项目,请从Keras开始,因为你可以非常快速地获得工作模型。 Keras也集成在TensorFlow中,因此您也可以使用tf.keras构建模型。

3. PyTorch

与TensorFlow相比,PyTorch更直观。一个包含这两个框架的快速项目将使这一点非常清晰。即使你没有扎实的数学或纯机器学习背景,你也可以理解PyTorch模型。 随着模型的进行,您可以定义或操作图形,这使得PyTorch更加直观。PyTorch没有像TensorBoard这样的可视化工具,但你可以随时使用像matplotlib这样的库。

4. Caffe

当我们在图像数据上构建深度学习模型时,Caffe非常有效。但是当涉及到递归神经网络和语言模型时,Caffe落后于我们讨论过的其他框架。Caffe的主要优势在于,即使您没有强大的机器学习或微积分知识,您也可以构建深度学习模型。Caffe主要用于构建和部署用于移动电话和其他计算受限平台的深度学习模型。

5. DeepLearning4j

就像我之前提到的,Deeplearning4j是Java程序员的天堂。它为不同的神经网络提供了大量支持,如CNN,RNN和LSTM。它可以在不牺牲速度的情况下处理大量数据。

八、 结束

请记住,这些框架本质上只是帮助我们实现最终目标的工具。明智地选择它们可以减少大量的精力和时间。下图是详细介绍我们所涵盖的每个深度学习框架的信息图。你可以选择下载,打印并在下次构建深度学习模型时使用它!
1
vue实现echarts水球
上一篇
tensorflow几个函数用法
下一篇
评论 (0)

请登录以参与评论。

现在登录
聚合文章
在Gitee收获近 5k Star,更新后的Vue版RuoYi有哪些新变化?
2月前
vue3.x reactive、effect、computed、watch依赖关系及实现原理
2月前
Vue 3 新特性:在 Composition API 中使用 CSS Modules
2月前
新手必看的前端项目去中心化和模块化思想
2月前
标签
AI AI项目 css docker Drone Elaticsearch es5 es6 Geometry Go gru java Javascript jenkins lstm mysql mysql优化 mysql地理位置索引 mysql索引 mysql规范 mysql设计 mysql配置文件 mysql面试题 mysql高可用 nginx Redis redis性能 rnn SpringBoot Tensorflow tensorflow2.0 UI设计 vue vue3.0 vue原理 whistle ZooKeeper 开源项目 抓包工具 日志输出 机器学习 深度学习 神经网络 论文 面试题
1
相关文章
我收集了12款自动生成器,无聊人士自娱自乐专用
输入一张图,就能让二次元老婆动起来,宛如3D:这全是为了科学啊
使用ONNX+TensorRT部署人脸检测和关键点250fps
基于 Keras 的烟火检测
松鼠乐园

资源整合,创造价值

小伙伴
墨魇博客 无同创意
目录
重大新闻 Centos CSS Docker ES5 ES6 Go Java Javascript Linux Mac MySQL Nginx Redis Springboot Tensorflow Vue Vue2.x从零开始 Windows 书籍推荐 人工智能 前端资源 后端资源 壁纸 开源项目 测试 论文
Copyright © 2018-2021 松鼠乐园. Designed by nicetheme. 浙ICP备15039601号-4
  • 重大新闻
  • Centos
  • CSS
  • Docker
  • ES5
  • ES6
  • Go
  • Java
  • Javascript
  • Linux
  • Mac
  • MySQL
  • Nginx
  • Redis
  • Springboot
  • Tensorflow
  • Vue
  • Vue2.x从零开始
  • Windows
  • 书籍推荐
  • 人工智能
  • 前端资源
  • 后端资源
  • 壁纸
  • 开源项目
  • 测试
  • 论文
热门搜索
  • jetson nano
  • vue
  • java
  • mysql
  • 人工智能
  • 人脸识别
迦娜王
坚持才有希望
1224 文章
33 评论
231 喜欢
  • 1
  • 0
  • Top