动态图和静态图

小白学PyTorch 动态图与静态图的浅显理解 - 知乎 (zhihu.com)

动态图:pytorch使用的,运算与搭建同时进行;灵活,易调节。即先有数据,再拿着数据按照算式算数。

动态图

静态图:老tensorflow使用的,先搭建图,后运算;高效,不灵活;图搭建好后不能修改。即先有算式(模型),再把数据往里带。

动态图

静态图先说明数据要怎么计算,然后再放入数据。假设要放入50组数据,运算图因为是事先构建的,所以每一次计算梯度都很快、高效;动态图的运算图是在数据计算的同时构建的,假设要放入50组数据,那么就要生成50次运算图。这样就没有那么高效。所以称为动态图。

动态图虽然没有那么高效,但是他的优点有以下:

  1. 更容易调试。
  2. 动态计算更适用于自然语言处理。(这个可能是因为自然语言处理的输入往往不定长?)
  3. 动态图更面向对象编程,我们会感觉更加自然。