要计算后向传递过程中的损失函数,我需要使用
从泊松分布中采样tf.random_poisson()
现在,在运行时出现以下错误
Error msg: LookupError: No gradient defined for operation...(op type: RandomPoisson)
如何避免此错误?因为我只需要在tf张量上进行计算,但不需要该op的梯度?
作为一种解决方法,我尝试按如下所示注册一个空渐变
@tf.RegisterGradient("RandomPoisson")
def _random_poisson_grad(op,grad):
return [],[]
但这会给我以下错误消息:
ValueError: Incompatible shapes between op input and calculated input gradient. Forward operation: ...RandomPoisson. Input index: 0. Original input shape: (0,). Calculated input gradient shape: (150, 30)
如果我返回grad,该错误也仍然存在。因此,保持输入的形状。 谢谢