no if you chain them, then func1 will also need to be differentiable to get gradients for module1.
You can use the information in this part of the doc 2 to create your own autograd Function. In your case, you can use func1 and func2 for the forwards and you will need to implement the backward for them.