深度学习2总结(笔记)Caffe,TensorFlow,PyTorch框架

一、Caffe

1、什么是caffe

1.1 Caffe框架是一个用于构建和训练深度学习模型的工具,特别擅长处理图像相关的任务

Caffe的全称是Convolutional Architecture for Fast Feature Embedding,它是由加州大学伯克利分校的研究者开发的。这个框架的核心是用C++语言编写的,这意味着它运行起来非常快。而且,Caffe还支持Python和MATLAB接口,这让更多不熟悉C++的研究人员和开发者也能够使用它。

Caffe的一个重要特点是它可以在CPU和GPU之间无缝切换。这有什么用呢?简单来说,CPU就像是个全能运动员,什么事情都能做,但是速度比较慢;而GPU就像是专门跑赛道的运动员,只专注于跑步,所以速度非常快。

2、caffe的特点

   2.1工作流程:   Caffe的基本工作流程是设计建立在神经网络的一个简单假设,所有的计算都是以的形式表示的,如网络层所做的事情就是接收输入数据,然后输出计算结果。比如卷积层就是输入一幅图像,然后和这一层的参数(filter)进行卷积,最终输出卷积结果。每层需要两个函数计算,一个是forward,从输入计算到输出,另一个是backward,从上层给的gradient来计算相当于输入层的gradient。

2.2 Caffe是一个清晰而高效的深度学习框架。它基于纯粹的C++/CUDA架构,支持命令行、Python和 MATLAB接口,可以在CPU和GPU之间直接无缝切换。

2.3特点:

  • 高效性:Caffe是一个高效的深度学习框架,它的内核是用C++编写的,并且优化了GPU的使用,这使得它能够处理大规模的数据,并且可以在短时间内完成训练。
  • 灵活性:Caffe是一个灵活的深度学习框架,它可以自定义网络结构和参数,并且可以在不同的任务中使用。
  • 可扩展性:Caffe是一个可扩展的深度学习框架,它可以通过添加新的层和功能来扩展。
  • 多后端支持:Caffe支持多种后端,包括CUDA和OpenCL等。这使得Caffe可以在各种设备上运行,并且可以根据需要进行优化。

3 、Caffe概述

3.1  Cafe 是一种对新手非常友好的深度学习框架,它的相应优化都是以文本形式而非代码形式给出。Cafe中的网络都是有向无环图的集合,可以直接定义。

有向无环图:若一个有向图不存在环,则称为有向无环图,简称为DAG图。

           

图3.1.1 有向无环图

3.2 数据及其导数以blob的形式在层间流动,Cafe层的定义由两部分组成:层属性与层参数。

Caffe使用blob存储、交换、操纵这些信息。blob是整个框架的标准的数组结构和统一存储接口。Blob是Caffe处理和传输的真实数据的包装类,同时它还隐含提供了在CPU和GPU之间同步数据的能力。在数学上,一个blob就是一个4维的数组,它是按照c语言风格存储的,即行优先。

二、TensorFlow

1、什么是TensorFlow

1.1 TensorFlow 是一个采用数据流图)( datafow graph)进行数值计算的开源软件库。节点(node)在数据流图中表示数学操作,线edge)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

TensorFlow 是由 Google 团队开发的深度学习框架之一,它是一个完全基于 Python 语言设计的开源的软件。它结合了计算代数的优化技术,使它便计算许多数学表达式。

TensorFlow 可以训练和运行深度神经网络,它能应用在许多场景下,比如,图像识别、手写数字分类、递归神经网络、单词嵌入、自然语言处理、视频检测等等。

2、TensorFlow的特点

2.1 TensorFlow可在 CPU和GPU上运行,TensorFlow支持自动在多个CPU上规模化运算训练模型,以及将模型迁移到移动端后台。

2.2 TensorFlow的特点主要包括以下方面:

  1. 多平台支持:TensorFlow可以在多种平台上运行,包括Windows、MAC、Linux、Android以及各种分布式系统。这样的灵活性使得TensorFlow可以适应不同的开发和部署环境。
  2. 多设备支持:TensorFlow支持多种CPU和GPU硬件架构,能够在多核CPU或多核GPU上进行高效的并行计算。此外,它还支持在一台机器上的多个计算单元之间进行并行处理,以及在数百台机器上进行分布式训练。
  3. 数据流图计算方式:TensorFlow使用数据流图的方式来表示计算过程,将不同的操作以图的形式组织起来,简化了复杂的数学运算和函数计算的描述。这种方式也方便了对神经网络的训练和优化算法的实施。
  4. 可视化工具TensorBoard:TensorFlow提供了一个名为TensorBoard的可视化工具,它允许用户通过仪表板监控和理解网络训练的过程和表现。这提高了调试和分析模型的便利性。
  5. 模型服务系统TensorFlow Serving:TensorFlow Serving是一个高性能的服务系统,用于在生产环境中部署和管理机器学习模型。它提供了模型生命周期管理、试验不同算法、有效使用GPU资源等功能,并能够简化从模型到生产的过程。
  6. 语言和社区支持:TensorFlow支持多种流行的编程语言,如Python、Java等,并且有着非常活跃的社区支持。此外,它还集成了Keras这一高级神经网络API,为用户提供了更多的便利。
  7. 云服务支持:TensorFlow受到所有主流云服务平台的支持,使得用户可以在云环境中轻松地运行和扩展他们的机器学习应用。

3、TensorFlow概述

 3.1 、TensorFlow中的Flow,也就是流,是其完成运算的基本方式。

  • 叶子顶点或起始顶点始终是张量,图中的每个操作都应该接收一个张量并产生一个新的张量。
  • 张量不能作为非叶子节点出现,
  • 计算图总是以层次顺序表达复杂的操作。
  • 计算图的并行,即同级节点的操作彼此独立,这是计算图的重要属性之一。可以并行执行,同级的节点是独立的。

三、PyTorch

1、pytorch是什么

      1.1 Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。作为经典机器学习库 Torch 的端口,PyTorch 为 Python 语言使用者提供了舒适的写代码选择。

2、PyTorch特点

    PvTorch可以看作加入了GPU支持的NumPy(Python的一个扩展程序库)。TensorFlow与
Ca都是命令式的编程语言,而且是静态的)即首先必须构建一个神经网络,然后一次又一次使思同样的结构。如果想要改变网络的结构,就必须从头开始。但是PyTorch过一种反向自动求事的技术,可以让用户零延迟地任意改变神经网络的行为。尽管这项技术不是PyTorch独有,但目前为止它的实现是最快的,这也是PyTorch相比TensorFlow而言最大的优势。

首先,PyTorch的设计非常直观,这使得它对于初学者和有经验的开发者而言都易于学习和使用。它的API与Python深度集成,因此对于Python程序员来说尤其受欢迎。

其次,PyTorch的源码相比其他框架如TensorFlow要少得多,这使得其源码更易于阅读和理解。这种简洁性是PyTorch受欢迎的一个原因,因为它降低了学习成本,使得开发者能够快速上手。

再者,PyTorch是基于Torch的,它是一个支持大量机器学习算法的科学计算框架。Torch类似于Numpy,是一个张量操作库,但其特点是特别灵活。由于Torch使用了较为小众的Lua语言,这限制了它的流行度,而PyTorch的出现则解决了这一问题,因为它使用了更广泛使用的Python语言。

最后,与TensorFlow的静态计算图不同,PyTorch采用了动态计算图。这意味着计算图可以根据计算的需要实时改变,这为模型的调试和实验提供了极大的便利。

2、PyTorch概述

    2.1 PyTorch最大的优势是建立的神经网络是动态的,可以非常容易地输出每一步的调试结果,相对于其他框架来说,调试起来十分方便。

图2.1 PyTorch代码示例

四,三者对比

       TensorFlow和PyTorch是目前较流行的两种开源框架。在以往版本的实现中,TensorFlow主要提供静态图构建的功能,因此具有较高的运算性能,但是模型的调试分析成本较高。PyTorch主要提供动态图计算的功能,API设计接近Python原生语法,因此易用性较好,但是在优化方面不如TensorFlow。这导致 TensorFlow大量用于人工智能(ArtificialIntelligence,AI)企业的模型部署,而学术界大量使用PyTorch进行研究。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值