You could use t2.unsqueeze(1).expand(-1, 10, -1)
. This will take no extra memory (before the cat, that is) as it is a view (print stride() and shape to see what is going on) and the 10-dimension is just stride 0 (i.e. all copies in the same location).
Best regards
Thomas