How to efficiently swap a region between two image tensors?

I have two tensors of same shape, namely 3-channel images (say 3x32x32) and want to swap a region between the two across all channels (say the upper left 2x2 matrix).

I can access this region with indexing (tensor[:, :2, :2]), so I know it’s easy to create a copy of one of the regions and perform the swap manually.

My question is, is there a more efficient way to do this?