test = torch.autograd.Variable(torch.randn([5,5]), requires_grad=True)
optimizer = torch.optim.Adam([test], lr = 0.0001)
lr_scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=100, gamma=0.1)
lr_scheduler.step()
lr_scheduler.get_lr()

Yeah. The behaviour is weird. If I call step() before get_lr(), the output looks correct.