Your model definition works and the output tensors have valid grad_fns, so I’m unsure why they are None in your script:
model = SIGGRAPHGenerator(3, 1)
x = torch.randn(1, 1, 24, 24)
out = model(x, x, x)
print(out[0].grad_fn)
> <ThnnConv2DBackward object at ...>

print(out[1].grad_fn)
> <TanhBackward object at ...>