Your input tensor is treated as a temporal signal, thus only the sequence length (dim2) will be interpolated, while the batch size and channels stay the same (dim0, dim1).
If your input is an image tensor, unsqueeze the batch dimension before passing it to F.interpolate:
x = x.unsqueeze(0)
out = F.interpolate(x, scale_factor=3)