I’m trying to run the MulConstant
code from Extending Pytorch
class MulConstant(Function):
@staticmethod
def forward(ctx, tensor, constant):
# ctx is a context object that can be used to stash information
# for backward computation
ctx.constant = constant
return tensor * constant
@staticmethod
def backward(ctx, grad_output):
# We return as many input gradients as there were arguments.
# Gradients of non-Tensor arguments to forward must be None.
return grad_output * ctx.constant, None
In particular, I’m testing the gradcheck function
input = torch.randn(20, requires_grad=True)
print(gradcheck(MulConstant, (input, 2), eps=1e-6, atol=1e-4))
However, I get the error
Traceback (most recent call last):
.../site-packages/torch/autograd/gradcheck.py", line 136, in get_analytical_jacobian
if output.is_sparse:
AttributeError: 'MulConstant' object has no attribute 'is_sparse'
I can’t figure out what’s going on. I can’t find any documentation on this is_sparse
attribute. The extending pytorch documentation doesn’t mention it either.
(I’m on torch 1.8.0)