接着我们说明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的部分。
>>: 14. 为何归咎於human error不是个好作法?
就做自己吧,其他角色都有人了。 Be yourself; everyone else is alre...
When we talk of Netgear WiFi Extender Setup , our ...
补充一点HTML的资讯,HTML从1995年至今已经发展了多个版本,目前主流使用为HTML5,每个版...
Python PyQt5 QMediaPlayer Video播放器 前言: 写个Python GU...
完整的标题:老实人暂时先别去玩大阪的 CodeBuild;老菜卜带你玩东京的 CodePipelin...