Seemlessly blending tensors together?

Yes, you’ve to reshape the tensor back to the original shape with,

.permute(1, 2, 3, 0).reshape(1, 3*p_size*p_size, patches_shape[-1])

to get sth similar to torch.Size([1, 49152, 225]) which is required for the fold function. To get the same behavior as before you have to set the stride to stride = tile_size.

And I literally used the exact same code you posted above, just loading a random image and rebuilding it.