Yes, I do want autograd to just do its normal thing.
Basically the situation I have is that sometimes I want my module to get a single tensor, and sometimes a dictionary of tensors like in the example.  At the top of my call I want to do something like:
forward(input)
if type(input) is dictionary
    mainOut = input[0]
else:
    mainOut = input
...
do stuff with mainOut including either
mainOut = self.batchNormLayer(mainOut)
or
mainOut.copy_( self.batchNormLayer(mainOut))
...
return input

Maybe just at the end I should do another dictionary check and set input[0] to be mainOut again, i.e. you can’t do an actual reference like c++ with python like I was thinking here because of the way the in place operations work like that.