即使不使用Tensorflow,也需要进行梯度操作

时间:2018-08-10 15:57:13

标签: tensorflow

要计算后向传递过程中的损失函数,我需要使用

从泊松分布中采样
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,该错误也仍然存在。因此,保持输入的形状。 谢谢

0 个答案:

没有答案