pytorch的发展历史,与其他框架的联系

这篇具有很好参考价值的文章主要介绍了pytorch的发展历史,与其他框架的联系。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        我一直是这样以为的:pytorch的底层实现是c++(这一点没有问题,见下边的pytorch结构图),然后这个部分顺理成章的被命名为torch,并提供c++接口,我们在python中常用的是带有python接口的,所以被称为pytorch。昨天无意中看到Torch是由lua语言写的,这让我十分震惊,完全颠覆了我的想象。所以今天准备查找并记录一下pytorch的发展历史,与其他框架的联系。当然以下列举的部分难以面面俱到,如果您知道哪些有意思的相关知识,请在评论区评论。

pytorch结构图

pytorch的发展历史,与其他框架的联系,深度学习,pytorch,人工智能,python

  • 图片来源 https://golden.com/wiki/PyTorch-NMGD4Y4,如果你想了解有关PyTorch 中的自动微分,PyTorch 基金会的相关信息,可以点进去看一下。

发展历史

        pytiorch ,如果您想了解pytorch的技术新闻可点击pytorch的官方博客。2016年10月,PyTorch开始作为Adam Paszke的实习项目。

Torch (基础)

        Torch 是一个Facebook的开源机器学习库、一个科学计算框架和一种基于 Lua 编程语言的脚本语言。它于2002年10月首次发布。Torch的开发于2017年转移到PyTorch。

        同时期的学习框架还有MATL AB和OpenNN等。MATL AB是由美国MathWorks公司出品的一种用于算法开发、数据分析以及数值计算的高级技术计算语言和交互式环境。OpenNN开发于2003年在国际工程数值方法中心的名为RAMFLOOD的项目中是一个使用C++编写的开源类库。OpenNN的主要优点是其高性能。该库在执行速度和内存分配方面非常出色。它不断优化和并行化,以最大限度地提高其效率。并且Torch的论文中也提到了Matlab:Torch7: A Matlab-like Environment for Machine Learning,Neural Information Processing Systems. 2011.。

Caffe(声明式编程风格)

        Caffe(https://github.com/BVLC/caffe)是以C++/CUDA代码为主的深度学习框架,需要进行编译安装,支持命令行、Python和MATLAB接口、单机多卡、多机多卡使用。Caffe的全称是:Convolutional architecture forfast feature embedding,它是一个清晰、高效的深度学习框架。
        Caffe是一款知名的深度学习框架,由加州大学伯克利分校的贾扬清博士于2013年在Github上发布。Caffe2018 于 21 年 2022 月底并入 PyTorch。并且在pytorch的开源项目中可以看到名为caffe2的文件夹。

pytorch的发展历史,与其他框架的联系,深度学习,pytorch,人工智能,python

        Caffe 遵循了神经网络的一个简单假设——所有的计算都是以layer(如relu_layer:https://github.com/BVLC/caffe/blob/2a1c552b66f026c7508d390b526f2495ed3be594/src/caffe/layers/relu_layer.cpp)的形式表示的,layer做的事情就是处理一些数据,然后输出一些计算以后的结果。比如说卷积,就是输入一个图像,然后和这一层的参数(filter)做卷Captain Jack积,然后输出卷积的结果。每一个layer需要做两个计算:1,Forward是从输入计算输出。2,Backward是从上面给的gradient来计算相对于输入的gradient。只要这两个函数实现了以后,我们就可以把很多层连接成一个网络,这个网络做的事情就是输入我们的数据(图像或者语音等),然后来计算我们需要的输出(比如说识别的label),在training的时候,我们可以根据已有的label来计算loss和gradient,然后用gradient来update网络的参数,这个就是Caffe的一个基本流程。

                这是一个官方的caffee的例子:https://github.com/BVLC/caffe/tree/master/examples/mnist ,需要用我们熟悉并使用Google Protobuf定义网络,定义 MNIST 求解器。Caffe通过“blobs”即以4维数组的方式存储和传递数据。Blobs提供了一个统一的内存接口,用于批量图像(或其它数据)的操作,参数或参数更新。Models是以Google Protocol Buffers的方式存储在磁盘上。大型数据存储在LevelDB数据库中。Caffe保留所有的有向无环层图,确保正确的进行前向传播和反向传播。Caffe模型是终端到终端的机器学习系统。一个典型的网络开始于数据层,结束于loss层。通过一个单一的开关,使其网络运行在CPU或GPU上。在CPU或GPU上,层会产生相同的结果。在使用上,caffe(c++)的使用需要进行复杂的编译操作(相比后来的pytorch),所以在caffe流行的时期,有时一个实验室中使用的caffe还是上一届的师兄安装的。但是现在仍有许多论文使用caffee框架,知乎上也有问题:caffe停更这么多年,为何现在还有一些论文开源代码还是使用caffe?

这里引用一下Captain Jack的回答:经典的数据结构先行的程序架构。

  1. 整个caffe都是围绕那个 prototxt 定义来实现的。
  2. 没有太多额外的系统方向的代码,项目结构清晰,比如:分布式、跨平台、通讯、动态dispatch等等。
  3. 和现在的框架比,那就是最小可用产品。
  4. 历史占用率高。

所以,

  1. 改代码容易,你改改 PyTorch、掏粪 试试。
  2. 作为一个数据格式的标准,转换比较容易,到现在 onnx 也就和 caffe 的 prototxt 打平手。很多私有、商业实现还是以 caffe 格式支持为准。
  3. 可能是最重要的:熟悉了懒得学新的,改改caffe又不是不能用。

Theano(创新观点)

        Theano(https://github.com/Theano/Theano)是一个Python库和优化编译器的开源项目, 用于操作和评估数学表达式,尤其是矩阵值表达式。其计算是使用NumPy语法表示,并且编译后可在CPU/GPU架构上高效运行。
        Theano多年来引入很多创新并已被其他框架采用和完善。例如,能够将模型表示为数学表达式,重写计算图以获得更好的性能和内存使用,在GPU上透明执行,高阶自动微分都已成为主流思想。
        Keras是一个由Python编写的开源人工神经网络库,可以作为Tensorflow、Microsoft-CNTK和Theano的高阶应用程序接口。

CG

  • 深度学习软件比较https://en.wikipedia.org/wiki/Comparison_of_deep_learning_software

  • [源码解析] PyTorch 分布式(1)------历史和概述 https://www.cnblogs.com/rossiXYZ/p/15496268.html

  • https://alexmoltzau.medium.com/pytorch-governance-and-history-2e5889b79dc1

  • 宣布成立 PyTorch 基金会:尖端 AI 框架的新时代 2022.12 https://ai.meta.com/blog/pytorch-foundation/

  • LUA Torch 回忆录 https://zhuanlan.zhihu.com/p/380924980?utm_id=0

  • https://en.wikipedia.org/wiki/Torch_(machine_learning)

  • 如何评价 Theano?
    h ttps://www.zhihu.com/question/35485591

  • Chainer是一个开源的深度学习框架, 完全在NumPy和CuPy Python库
    的基础上用Python编写,因其采用边运行边定义方案以及在大型系统上的性

  • Theano实现了非常先进的优化技术来优化完整的计算图。它将代数的各个方面与优化编译器的各个方面相结合。图形的一部分可以编译成 C 语言代码。对于重复计算,评估速度至关重要,Theano通过生成非常有效的代码来达到此目的。 https://www.tutorialspoint.com/theano/theano_computational_graph.htm

  • 深度学习框架——自动求导 https://www.cnblogs.com/wolfling/p/14919024.html

  • 大模型:

  • OneFlow的大模型分片保存和加载策略

  • 一块GPU训练TB级推荐模型不是梦,OneEmbedding性能一骑绝尘

  • 大模型训练难于上青天?效率超群、易用的“李白”模型库来了

  • 深度学习利器之自动微分(1)
    pytorch的发展历史,与其他框架的联系,深度学习,pytorch,人工智能,python

  • 在 PyTorch Windows 上引入分布式数据并行支持

  • https://github.com/pytorch/pytorch/releases?page=2
    pytorch的发展历史,与其他框架的联系,深度学习,pytorch,人工智能,python文章来源地址https://www.toymoban.com/news/detail-620411.html

到了这里,关于pytorch的发展历史,与其他框架的联系的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • StableDiffusion模型发展历史

    参考资料: 相应的github和huggingface LDM [github] StableDiffusion v1.1 ~ v1.4 [github] [huggingface] StableDiffusion v1.5 [huggingface] [github] StableDiffusion v2 v2.1 [github] [huggingface] 首先说一下,这篇文章的目的是让你清晰地了解StableDffusion这个模型的发展脉络,由于目前开源AIGC模型基本上都是基于SD的

    2024年02月13日
    浏览(59)
  • docker发展历史

    2008年,Solomon Hykes 和他的朋友 Kamel Founadi、Sebastien Pahl 共同创立了一家名为 DotCloud 的公司,目标是利用一种叫做容器的技术来创建他们称作是“大规模的创新工具”:任何人都可以使用的编程工具。 2010年,dotCloud获得了创业孵化器Y Combinator的支持,并开始吸引到一些真正的投

    2024年02月13日
    浏览(40)
  • 手机的发展历史

    目录 一.人类的通信方式变化 二.手机对人类通信的影响 三.手机的发展过程 四.手机对现代人的影响         人类通信方式的变化是一个非常广泛和复杂的话题,随着技术的进步和社会的发展,人类通信方式发生了许多重大的变化。下面是一些主要的变化趋势:       

    2024年02月12日
    浏览(43)
  • Excel的发展历史

           1982年,Microsoft推出了它的第一款电子制表软件──Multiplan,并在CP/M系统上大获成功,但在MS-DOS系统上,Multiplan败给了Lotus 1-2-3。这个事件促使了Excel的诞生,正如Excel研发代号Doug Klunder:做Lotus 1-2-3能做的,并且做的更好。1985年,第一款Excel诞生,它只用于Mac系统;

    2024年02月13日
    浏览(42)
  • Hadoop发展历史

    1)Hadoop是一个由Apache基金会所开发的 分布式系统基础架构 2)主要解决,海量数据的 存储 和海量数据的 分析计算 问题。 3)广义上来说,Hadoop通常是指一个更广泛的概念—— Hadoop生态圈 。 1)Hadoop创始人 Doug Cutting ,为 了实 现与Google类似的全文搜索功能,他在Lucene框架基

    2024年02月11日
    浏览(77)
  • ARM简介及其发展历史

    ARM名声很大,最近在学习STM32,也借机梳理一下关于ARM的各种概念和信息。 本文主要内容:ARM一词的含义,ARM的发展历史,ARM cortex系列处理器简介与ARM在不同市场的应用情况。 1.1 ARM公司 ARM第一种意思是指ARM公司。 ARM公司成立于1990年,是一家英国半导体设计公司,总部位于

    2023年04月10日
    浏览(47)
  • 神经网络的发展历史

    神经网络的发展历史可以追溯到上世纪的数学理论和生物学研究。以下是神经网络发展史的详细概述: 1943年,Warren McCulloch和Walter Pitts提出了一种神经元模型,被称为MCP神经元模型,它模拟了生物神经元的基本功能。 这一模型使用二进制逻辑来描述神经元的激活和抑制过程,

    2024年02月07日
    浏览(43)
  • 密码学发展历史介绍

      稍微介绍一下密码学,密码学是研究编制密码和破译密码的学科,就是研究防与攻。密码学的发展历程可分三个阶段:古典密码、近代密码、现代密码。   古典密码阶段:从密码的产生到发展成为近代密码之间的这段时期密码的发展历史。主要特点是手工加解密,叫手

    2023年04月17日
    浏览(50)
  • 计算机视觉发展历史

    目录 1.视觉对于生物界的重要作用 2.人类对于计算机视觉的探索 2.1 20世纪50年代——研究生物视觉的工作原理 2.2 20世纪60年代——计算机视觉萌芽 2.3 20世纪70年代——开创性提出识别流程 2.4 20世纪80年代——着眼于提取特征 2.5  20世纪90年代——图像分割 2.6  21世纪初——各

    2024年02月07日
    浏览(54)
  • HTTP 第二章 发展历史

    HTTP(HyperText Transfer Protocol )是万维网(World Wide Web)的基础协议。 1989 年,当时在 CERN 工作的 Tim Berners-Lee 博士写了一份关于建立一个通过网络传输超文本系统的报告。这个系统起初被命名为 Mesh 。 Tim Berners-Lee 对于 Web 的最初设想不是一个只读媒体,是可以远程添加或移动文

    2024年01月22日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包