I have a Function whose only job is to negate its gradient. After upgrading to 0.20 I realize the backward function is no longer being called. Has there been a change in the behaviour of the computational graph?
class NegateGradient(Function):
    """ forward identity, backward negation, useful in minimax """
    def forward(self, input):
        return input
    def backward(self, grad_output):
        return -grad_output

If I change return input to return input+1e-10, then the backward function would be correctly called again. If this is some newly introduced graph optimization, can someone please point me to the documentation?