Replace or modify gradient in TensorFlow
发布时间
阅读量:
阅读量
问题
我希望对 TensorFlow 中的某个操作或计算图的一部分梯度进行替换或调整,应当如何操作?
在特定场景下,这与 tf.stop_gradient() 所实现的功能存在差异:我们并非希望“插入一个操作,并在梯度计算过程中忽略该操作”,而是期望“仅在梯度计算阶段生效(即希望有一个仅在梯度计算时起作用的计算方式)”。
一个简单的示例如下:
在不改变前向传播过程的前提下,通过将梯度乘以一个固定数值的方式实现对梯度的缩放。
另一个示例如下:
在保持前向传播不变的前提下,将梯度限制在一个预设的区间范围内。
回答1
回答人:BlueSun
回答质量:很高
版本1
初始步骤应为自行编写梯度计算的相关函数,并将其成功集成至 tensorflow 系统中
@tf.RegisterGradient("CustomGrad") # 注册到tensorflow
def _const_mul_grad(unused_op, grad):
return 5.0 * grad
AI写代码python
运行
由于我们希望保持前向传播过程不变,因此接下来将采用之前注册的函数来替代原有的梯
全部评论 (0)
还没有任何评论哟~
