Single element tenor shape

Hi, I want to learn more about PyTorch, understand and discuss its design.

The issue

The shape of a single element tensor can be confusing.

a = torch.Tensor([1]) #torch.Size([1])
b = a[0] #torch.Size([])
#but
a.nelement() == b.nelement()

Why does it matter

a and b are both tensors with a single element but they are fundamentally different.
This makes things like porting greedy algorithm into pytorch quite tricky as nelement() return 1 for both a and b but indexing b will result in errors.

What might be good

A simple solution might be just letter indexing a single element of a tensor be its own tensor,

a = torch.Tensor([1])
a == a[0]

But I am sure you probably have already thought of it, I am just curious why is it not that way.

Thanks!