Thank you for the explanation @vabh
I am still confused why initial learning rate = 20 works very well in this example. Though initial learning varies on different task and dataset, usually it is less than (or equally to) 1.0 in SGD optimizer. I tried 1.0 as initial learning rate here, but it become worse. Does anyone have a good explanation on this? Thanks in advance!