iT邦幫忙

2021 iThome 鐵人賽

DAY 15
0

接著我們說明optimizer設定 。

首先,我們先得知道 training and validation 大概在做些甚麼事情。簡單的說,就是影像讀進來後,經過 model 的運算,得到一個猜測值。猜測值和目標值(label or target),經由某loss函數計算出loss值。然後回到原來的神經網路,進行weight(parameters)的優化調整,讓loss變得最小(猜測值和目標值變得最接近)。此時,便需要optimizer來解決這件事情。我們先initialize一個optimizer ,如下所述:

 optimizer = optim.SGD(model.parameters(), lr=args['lr'], momentum=args['momentum'])

optim.SGD:表示我們用SGD作為optimize的方法,請自行查閱細節。由於optimize乃針對weights。所以,第一個參數就是神經網路的那堆weights-- model.parameters()。

lr:learn rate。簡單說,就是逼近谷值(loss 最小值)的步伐。越大,速度越快到達山谷。但是,太大又怕超車,衝過山谷,形成經過山谷來回跑,而停不下來。此時需要momentum來調節。

momentum:

 w = - ( d Loss / d w ) * lr + m * w  

( d Loss / d w )為Loss 函數對w做偏微分。m為momentum,是上次和本次w的和,若方向相同則加速。(不懂可跳過,不會影響太大)

下一章節,我們說明 for loop的部分。


上一篇
模型的內容04 def main()
下一篇
模型的內容06 def main()
系列文
新手一起來Azure上玩 NNI (auto-ML的一種)30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言