我想将自定义渐变的一些自定义操作从Chainer转换为Tensorflow。前向通过相对简单,我已经掌握了。但是对于后退,我永远无法使优化工作。让我们假设Chainer中的向后传递是这样的:
def backward_gpu(self, inputs, grad_outputs):
return some_operation(inputs, grad_outputs[0])
我在Tensorflow中以以下方式执行此操作:
@tf.RegisterGradient('Forward')
def _rasterize_grad(op, grads):
return some_operation(op.inputs, grads[0])
根据我在网上找到的文档,我认为grad_outputs
和grads
的计算方式相同。但是我以某种方式失败了。
有人能对此有所启发吗?这将不胜感激。