You can definitely do that, the autograd will have no issue with it. The main issue you’re going to encounter is that the nn tools are not built for that 
For example, the basic nn.Conv2d() is built to have learnable parameters. So if you don’t want these to be learnable but intermediary results, you’ll have to hack around it.
So the best way to implement this is going to be very dependent on your exact application.
If you have a code sample showing what you try to do, I’ll be happy to take a look at it. My advice for a first draft would be to do a toy example with limited scope that use as few nn tools as possible. And then you can try adding them back one by one, checking if they break your workflow.