Wrong outputs from torch.sub()?

I’m currently using torch.sub alongside torch.div to obtain the MAPE between my predicted and true labels for my neural network although I’m not getting the answers I’m expecting. According to the example in the documentation, I should be getting a 4x1 tensor, not 4x4.
Could anyone clear this up for me?

print('y_true ', y_true)
y_true tensor([[ 46],
[262],
[ 33],
[ 35]], device=‘cuda:0’, dtype=torch.int16)

print('y_pred ', y_pred)
y_pred tensor([[[308.5075]],
[[375.8983]],
[[389.4587]],
[[406.4957]]], device=‘cuda:0’, grad_fn=)

print('torch.sub ', torch.sub(y_true, y_pred))
torch.sub tensor([[[-262.5075],
[ -46.5075],
[-275.5075],
[-273.5075]],

    [[-329.8983],
     [-113.8983],
     [-342.8983],
     [-340.8983]],

    [[-343.4587],
     [-127.4587],
     [-356.4587],
     [-354.4587]],

    [[-360.4957],
     [-144.4957],
     [-373.4957],
     [-371.4957]]], device='cuda:0', grad_fn=<SubBackward0>)

I figured out the issue which was that y_pred actually had a shape of [4,1,1] whilst y_true had only [4,1]. I got rid of the third dimension by using torch.squeeze(y_pred, 2) and this has fixed the issue.