最大池梯度误差(Tensorflow 0.9rc0)
我得到一个最大池自动微分错误。请注意,我正在输入一个图像,使用convnet输出wrt输入图像的梯度,根据梯度更新图像,然后将图像反馈回网络(想想敌对图像)。因此,这涉及到更复杂的梯度处理,因此我得到以下错误:最大池梯度误差(Tensorflow 0.9rc0),tensorflow,Tensorflow,我得到一个最大池自动微分错误。请注意,我正在输入一个图像,使用convnet输出wrt输入图像的梯度,根据梯度更新图像,然后将图像反馈回网络(想想敌对图像)。因此,这涉及到更复杂的梯度处理,因此我得到以下错误: LookupError: No gradient defined for operation 'gradients/MaxPool_grad/MaxPoolGrad' (op type: MaxPoolGrad) 有一个简单的解决方法吗?正如错误消息所示,TensorFlow中的Max
LookupError: No gradient defined for operation 'gradients/MaxPool_grad/MaxPoolGrad' (op type: MaxPoolGrad)
有一个简单的解决方法吗?正如错误消息所示,TensorFlow中的
MaxPoolGrad
操作在版本0.9
的TensorFlow中没有实现相应的梯度函数
更详细地说,Python函数tf.gradients
通过遍历到目前为止构建的计算图来执行反向模式自动微分。当它遇到操作类型为Foo
的节点时,它会尝试在内部注册表中查找相应的梯度函数。通过调用函数填充注册表
请注意,尽管TensorFlow在该注册表中有许多(实际上是大多数)类型的节点的条目,但仍有一部分节点类型没有条目。这种情况会导致上述错误。为MaxPoolGrad
找出一个梯度函数,实现它,并发送一个pull请求,这确实很有用