时间:2021-05-22
动态图和静态图
目前神经网络框架分为静态图框架和动态图框架,PyTorch 和 TensorFlow、Caffe 等框架最大的区别就是他们拥有不同的计算图表现形式。 TensorFlow 使用静态图,这意味着我们先定义计算图,然后不断使用它,而在 PyTorch 中,每次都会重新构建一个新的计算图。通过这次课程,我们会了解静态图和动态图之间的优缺点。
对于使用者来说,两种形式的计算图有着非常大的区别,同时静态图和动态图都有他们各自的优点,比如动态图比较方便debug,使用者能够用任何他们喜欢的方式进行debug,同时非常直观,而静态图是通过先定义后运行的方式,之后再次运行的时候就不再需要重新构建计算图,所以速度会比动态图更快。
# tensorflowimport tensorflow as tffirst_counter = tf.constant(0)second_counter = tf.constant(10)# tensorflowimport 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)可以看到 TensorFlow 需要将整个图构建成静态的,换句话说,每次运行的时候图都是一样的,是不能够改变的,所以不能直接使用 Python 的 while 循环语句,需要使用辅助函数 tf.while_loop 写成 TensorFlow 内部的形式
# pytorchimport torchfirst_counter = torch.Tensor([0])second_counter = torch.Tensor([10]) while (first_counter < second_counter)[0]: first_counter += 2 second_counter += 1 print(first_counter)print(second_counter)可以看到 PyTorch 的写法跟 Python 的写法是完全一致的,没有任何额外的学习成本
以上这篇PyTorch学习:动态图和静态图的例子就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
静态图和动态图的区别是静态图片占用的内存比较小,动态图片占用的内存比较大,而理论上来说任何占用内存的程序都是必须耗费电能的。 动态图(activitydiag
pytorch动态网络+权值共享pytorch以动态图著称,下面以一个栗子来实现动态网络和权值共享技术:#-*-coding:utf-8-*-importran
matplotlib画图功能非常强大,目前也只能根据官网提供的例子简单地画几张图。最近学习了能画动态图的animation模块,作个简单地记录。在matplot
速卖通怎么添加动态图?现在动态图片才是趋势,所以很多卖家都在问速卖通怎么添加动态图?的问题,开淘小编带来了一篇速卖通怎么添加动态图?附GIF动图制作方法的文
动态图片比之静态数据图生动活泼多了,也令店面更加绚丽多彩。下面我就为大伙儿介绍一下手机版淘宝动态图片怎样设计方案的有关方法。一、手机版淘宝动态图片设计方案的有关