在GradientTape之后调用__exit_(persistent=True)



我开始用tf.GradientTape(persistent=True)记录梯度,以便能够多次调用gradient_tape.gradient()。由于这意味着在调用gradient()方法后不会释放渐变,所以我是否必须在train_step的末尾调用类似__exit__的东西?

根据https://www.tensorflow.org/api_docs/python/tf/GradientTape:

默认情况下,GradientTape所拥有的资源会尽快释放作为GradientTape.gradient((方法。计算倍数梯度在相同的计算上,创建一个持久的梯度磁带这允许多次调用gradient((方法作为资源在磁带对象被垃圾回收时释放。

train步骤之后,只要没有其他对象引用该磁带,垃圾收集器就会收集它。

相关内容

  • 没有找到相关文章

最新更新