As you can see, the difference happen when you reach 16:
In []: for n_train in range(1, 20):
   ...:     torch.manual_seed(4321)
   ...:     print(n_train, torch.randn(n_train)[0])
   ...:
1 tensor(0.7602)
2 tensor(0.7602)
3 tensor(0.7602)
4 tensor(0.7602)
5 tensor(0.7602)
6 tensor(0.7602)
7 tensor(0.7602)
8 tensor(0.7602)
9 tensor(0.7602)
10 tensor(0.7602)
11 tensor(0.7602)
12 tensor(0.7602)
13 tensor(0.7602)
14 tensor(0.7602)
15 tensor(0.7602)
16 tensor(-0.4716)
17 tensor(-0.4716)
18 tensor(-0.4716)
19 tensor(-0.4716)

This happens because we only use vectorized operations for Tensors larger than 16: here 2.