←前一篇 後一篇→
咱來走看覓
若有認真看原始碼 (Source code)
毋過, 咱斟酌看 train_neuralnet.py , 中方有
這敢是咱佇遮介紹規半晡个 numerical_gradient()? 毋是呢, 伊是 gradient(), 毋是 numerical_gradient().
歡喜傷早囉!
閣看 two_layer_net.py 內面有 numerical_gradient(), 嘛有 gradient() 函式. 按呢斟酌看來,
train_nerual_net.py 並無用咱的講規半晡个 numerical_gradient().
按呢毋是佇咧裝痟个?
共伊改轉來 numerical_gradient() 奕看覓
我kā train_neuralnet.py 的 graidient() 改轉來:行看覓, 等真久, 干焦出現一逝:
後來, 我用 timeit Má-tsìo 來小可看覓 numerical_gradient() 開偌濟時間, 按呢寫:
結果是:
頭一逝是我另外kā iter_per_epoch 印出來. 咱佇遮看著:
行一遍 numerical_gradient() 愛四十五秒.
iter_per_epoch 是設定走幾輾, 印一擺 "train acc, test acc". 頭一擺先印, 紲落來就愛 600 擺 numerical_gradient() 了後才會閣印.
若是 45 * 600 = 27000 秒, 差不度是 7.5 點鐘才會印第二擺.
若是參考頂懸彼例使用 gradient(), 印 "train acc, test acc" 16 擺才收縮到滿意的程度 ,numerical_gradient() 就愛五工才有初步个結果。
以上个時間計算, 愛看你个電腦速度, 你算出來無一定佮我相仝 。
行一遍 numerical_gradient() 愛四十五秒.
iter_per_epoch 是設定走幾輾, 印一擺 "train acc, test acc". 頭一擺先印, 紲落來就愛 600 擺 numerical_gradient() 了後才會閣印.
若是 45 * 600 = 27000 秒, 差不度是 7.5 點鐘才會印第二擺.
若是參考頂懸彼例使用 gradient(), 印 "train acc, test acc" 16 擺才收縮到滿意的程度 ,numerical_gradient() 就愛五工才有初步个結果。
以上个時間計算, 愛看你个電腦速度, 你算出來無一定佮我相仝 。
gradient() 佮 numerical_gradient() 這兩个方法,時間那會差遐爾濟?
gradient() 佮 numerical_gradient() 時間差蓋濟
咱若是仝款用 time_it 來算 gradient() 方法 (method) 个時間, 伊是量其約 0.01 秒, 和 45 比起來有 4000 外倍時間个精差.
gradient() 是按怎會遐爾仔緊, 伊就是用 倒退攄 (Back Propagation) 法啦!