[PyTorch 学习笔记] 1.4 静态图与动态图机制 - 知乎

PyTorch 的动态图机制

PyTorch 采用的是动态图机制 (Dynamic Computational Graph),而 Tensorflow 采用的是静态图机制 (Static Computational Graph)。

动态图是运算和搭建同时进行,也就是可以先计算前面的节点的值,再根据这些值搭建后面的计算图。优点是灵活,易调节,易调试。PyTorch 里的很多写法跟其他 Python 库的代码的使用方法是完全一致的,没有任何额外的学习成本。

静态图是先搭建好图,然后再输入数据进行运算。优点是高效,因为静态计算是通过先定义后运行的方式,之后再次运行的时候就不再需要重新构建计算图,所以速度会比动态图更快。但是不灵活。TensorFlow 每次运行的时候图都是一样的,是不能够改变的,所以不能直接使用 Python 的 while 循环语句,需要使用辅助函数 tf.while_loop 写成 TensorFlow 内部的形式。

使用静态图和动态图时他们的代码区别:

# pytorch
import torch
first_counter = torch.Tensor([0])   # tensor([0.])
second_counter = torch.Tensor([10]) # tensor([10.])while (first_counter < second_counter)[0]:first_counter += 2second_counter += 1print(first_counter)
print(second_counter)# tensorflow
import tensorflow as tffirst_counter = tf.constant(0)
second_counter = tf.constant(10)def cond(first_counter, second_counter, *args):return first_counter < second_counterdef body(first_counter, second_counter):first_counter = tf.add(first_counter, 2)second_counter = tf.add(second_counter, 1)return first_counter, second_counterc1, c2 = tf.while_loop(cond, body, [first_counter, second_counter])with tf.Session() as sess:counter_1_res, counter_2_res = sess.run([c1, c2])print(counter_1_res)
print(counter_2_res)

【PyTorch 】静态图与动态图机制相关推荐

  1. 基于pytorch实现图像分类——理解自动求导、计算图、静态图、动态图、pytorch入门

    1. pytorch入门 什么是PYTORCH? 这是一个基于Python的科学计算软件包,针对两组受众: 替代NumPy以使用GPU的功能 提供最大灵活性和速度的深度学习研究平台 1.1 开发环境 ...

  2. 【深度学习】村通网之——谈谈Tensorflow Eager Execution机制之静态图和动态图的区别(一)

    文章目录 前言 介绍 搭建静态图 搭建动态图 前言 随着TensorFlow 1.4 Eager Execution的出现,TensorFlow的使用出现了革命性的变化. 介绍 我很早就听说过这样一句 ...

  3. 静态图片怎么做成gif图?如何将静态图做成动态图

    静态图片怎么做成gif图?很多小伙伴们平时都会使用手机拍摄一些日常生活的记录或者是自己的自拍,但是千篇一律的静态图片即使非常好看也会让大家审美疲劳.今天来教大家一个方法,能够把静态图片做成gif动图, ...

  4. regl fake-3d 静态图变动态图, 使用深度信息图片

    原文链接: regl fake-3d 静态图变动态图, 使用深度信息图片 上一篇: regl 水纹波动效果 下一篇: regl 圆形色盘 https://tympanus.net/codrops/20 ...

  5. 动态图GIF动态图怎么做?上传动态效果图到你的csdn?

    动态图GIF动态图怎么做?上传动态效果图到你的csdn? 微信订阅号.CSND.博客等等很多地方都会用到GIF图,如何自己制作.这里直接提供工具. GIF工具下载:http://download.cs ...

  6. BigData:基于python编程—根据中国各个城市地理坐标+人口、GDP大数据进行标记中国地图、热点图、动态图

    BigData:基于python编程-根据中国各个城市地理坐标+人口.GDP大数据进行标记中国地图.热点图.动态图 目录 输出结果 1.地理坐标图 2.GDP热点图 3.人口热力图 输出结果 1.地理 ...

  7. python简单动态图_python动态图的绘制和保存

    前言 这段时间要做一个涉及排队论的数学建模,需要动态绘图.建好了模,却没想到在原以为简单的绘图上耗费了我大量时间.原因在于用python作动态绘图的参考资料过于琐碎.因此在我费了九牛二虎之力终于实现动 ...

  8. paddlepaddle 20 指数移动平均(ExponentialMovingAverage,EMA)的实现与使用(支持静态图与动态图)

    指数移动平均(ExponentialMovingAverage,EMA)是以指数式递减加权的移动平均,每一次更新都对上一次保留的权重按照decay进行衰减.其计算方式为pram_n'=(pram_n' ...

  9. StarUML 系列,静态图与动态图,用例图,类图【ps:熟悉一下starUML】

    大部分:   静态图部分,即静态不动的图 1.用例图, Use case diagram 1.展示系统核心功能及与其交互的用户ACTOR 表示:椭圆 sample1.sample2. 2.标准 使用s ...

最新文章

  1. [C] 图的广度优先遍历
  2. 中学计算机课 打字教案,初中信息技术《打字练习—易语言应用》教案
  3. DedeCMS Wap.php绑定域名的方法
  4. 200922阶段一C++关联容器map
  5. ABAP webservice运行时的HTTP 307 redirect重定向是怎么来的
  6. 安装虚拟机Centos系统并安装Docker过程记录
  7. python实验三答案_20192116 实验三《Python程序设计》实验报告
  8. 读书笔记:《亮剑 .Net》——System.Transactions 事务处理
  9. CSR烧录工具csr单个蓝牙烧录小工具qcc300x烧录软件/CSR86xx烧写工具
  10. QML 编译release 报错: qmlcache_loader.cpp:-1: error: undefined reference to `__imp__ZN11QQmlPrivate13qml
  11. 用javascript绘制点线数据
  12. 项目经理成功的五个关键因素
  13. org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connec
  14. 常用benchmark小结
  15. be 动词 时态变化
  16. 国外工业互联网安全现状分析(政策;标准;厂商;产品)
  17. 我的世界java防火墙_我的世界Java版更新:烟花和自由堡垒!
  18. 中序和先序、中序和后序
  19. 2021年茶艺师(中级)考试报名及茶艺师(中级)考试试卷
  20. 网络协议基础09--HTTP

热门文章

  1. JEECG - 基于代码生成器的J2EE智能开发框架 续二: 代码生成器使用规则
  2. Spring、SpringMVC、SpringBoot、SpringCloud的关系分享
  3. 破境Angular(三)Angular构件之模块
  4. WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试) 接口测试与数据驱动...
  5. ES6 import export
  6. 汉字转拼音Pinyin4j工具(C#、Java都可用)
  7. jquery实用方法
  8. 使用Listener准备application作用域数据
  9. php扩展 创建类 给外部调用
  10. 大型数据库的设计原则与开发技巧