well, that sounds like a crazy micro-optimization, but if you manage to correctly self-copy elements without an external buffer (that’s only possible with some overlap patterns, I believe; and copy routine implementation has to support overlaps) - sure, you can do this.
If you want gradients, I think you’ll at least need a new metadata object, that is instead of resize_ do something like x[:12].view(2,3,2) (that is in case of 1d compaction, if you assign to x[…,:2], the storage is still gapped like xx00xx00).