Scalar
A single number, with no axes — the smallest container of data there is.
A scalar is one number on its own: a learning rate of 0.001, a loss of 2.31, a temperature of 0.7. In tensor terms it has rank 0 and shape () — no axes at all, so there is no index you could use to ask for part of it.
Frameworks still wrap scalars in tensor types, which is why loss.item() exists to pull the plain number back out. The distinction matters because a rank-0 tensor and a rank-1 tensor of length one behave differently under broadcasting: shape () and shape (1,) look equally scalar to a reader and not to NumPy.