【问题标题】:With pytorch module,will computation graph be overrode when forward() was invoke multiple times before backward()?使用pytorch模块,在backward()之前多次调用forward()时,计算图会被覆盖吗?
【发布时间】:2018-10-15 23:41:17
【问题描述】:

我找到了一行代码:

out_a, out_p, out_n = model(data_a), model(data_p), model(data_n)    

在:https://github.com/liorshk/facenet_pytorch/blob/master/train_triplet.py

你可以看到在“backward()”之前多次调用了“forward()”,问题是:

1,下一次调用会覆盖之前的计算图吗?

2,在我的测试中,GPU消耗会相应增加,所以即使发生override,也会出现GPUu内存泄漏,如何解决这个问题?

【问题讨论】:

    标签: pytorch


    【解决方案1】:

    不,图表不会被不同的转发调用覆盖。 每次调用 forward 时,计算都会添加到图中,因此 gpu 消耗会增加。

    当您调用model.zero_grad() 时,图表会被清除。

    【讨论】:

      猜你喜欢
      • 2020-06-07
      • 1970-01-01
      • 2010-10-09
      • 1970-01-01
      • 1970-01-01
      • 2019-06-06
      • 2012-07-07
      • 2014-05-22
      • 1970-01-01
      相关资源
      最近更新 更多