<kbd id="9plqc"><label id="9plqc"></label></kbd>

        <th id="9plqc"></th>
        1. <center id="9plqc"><video id="9plqc"></video></center>
          <sub id="9plqc"><form id="9plqc"><pre id="9plqc"></pre></form></sub>
          <nav id="9plqc"><form id="9plqc"><legend id="9plqc"></legend></form></nav>
          【煉丹技巧】指數(shù)移動(dòng)平均(EMA)的原理及PyTorch實(shí)現(xiàn) 您所在的位置:網(wǎng)站首頁(yè) 屬豬不能帶三樣?xùn)|西嗎為什么 【煉丹技巧】指數(shù)移動(dòng)平均(EMA)的原理及PyTorch實(shí)現(xiàn)

          【煉丹技巧】指數(shù)移動(dòng)平均(EMA)的原理及PyTorch實(shí)現(xiàn)

          2024-06-17 03:25| 來(lái)源: 網(wǎng)絡(luò)整理| 查看: 265

          來(lái)自 | 知乎 地址 | https://zhuanlan.zhihu.com/p/68748778

          作者 | Nicolas

          編輯 | 樸素人工智能

          在深度學(xué)習(xí)中,經(jīng)常會(huì)使用EMA(指數(shù)移動(dòng)平均)這個(gè)方法對(duì)模型的參數(shù)做平均,以求提高測(cè)試指標(biāo)并增加模型魯棒。

          今天瓦礫準(zhǔn)備介紹一下EMA以及它的Pytorch實(shí)現(xiàn)代碼。

          EMA的定義

          在深度學(xué)習(xí)的優(yōu)化中的EMA

          EMA的偏差修正

          EMA為什么有效

          PyTorch實(shí)現(xiàn)

          瓦礫看了網(wǎng)上的一些實(shí)現(xiàn),使用起來(lái)都不是特別方便,所以自己寫了一個(gè)。

          代碼語(yǔ)言:javascript復(fù)制class EMA(): def __init__(self, model, decay): self.model = model self.decay = decay self.shadow = {} self.backup = {} def register(self): for name, param in self.model.named_parameters(): if param.requires_grad: self.shadow[name] = param.data.clone() def update(self): for name, param in self.model.named_parameters(): if param.requires_grad: assert name in self.shadow new_average = (1.0 - self.decay) * param.data + self.decay * self.shadow[name] self.shadow[name] = new_average.clone() def apply_shadow(self): for name, param in self.model.named_parameters(): if param.requires_grad: assert name in self.shadow self.backup[name] = param.data param.data = self.shadow[name] def restore(self): for name, param in self.model.named_parameters(): if param.requires_grad: assert name in self.backup param.data = self.backup[name] self.backup = {} # 初始化 ema = EMA(model, 0.999) ema.register() # 訓(xùn)練過(guò)程中,更新完參數(shù)后,同步update shadow weights def train(): optimizer.step() ema.update() # eval前,apply shadow weights;eval之后,恢復(fù)原來(lái)模型的參數(shù) def evaluate(): ema.apply_shadow() # evaluate ema.restore()References機(jī)器學(xué)習(xí)模型性能提升技巧: 指數(shù)加權(quán)平均(EMA), https://blog.csdn.net/mikelkl/article/details/85227053Exponential Weighted Average for Deep Neutal Networks, https://www.ashukumar27.io/exponentially-weighted-average/


          【本文地址】

          公司簡(jiǎn)介

          聯(lián)系我們

          今日新聞

          推薦新聞

          專題文章
            CopyRight 2018-2019 實(shí)驗(yàn)室設(shè)備網(wǎng) 版權(quán)所有
            黄色免费网站在线看,韩国精品在线观看,韩国美女一区二区,99国产热 贡山| 偏关县| 伊金霍洛旗| 台北市| 汪清县| 平和县| 丹东市| 文安县| 高陵县| 武乡县| 和田市| 利辛县| 九台市| 察雅县| 博白县| 大冶市| 福鼎市| 交口县| 钦州市| 旅游| 湘潭市| 南投县| 文山县| 磴口县| 汨罗市| 白银市| 呼图壁县| 阳新县| 石泉县| 曲水县| 彭州市| 岑巩县| 香格里拉县| 屏东县| 南江县| 兴宁市| 汝城县| 博野县| 白沙| 洛南县| 京山县| http://444 http://444 http://444 http://444 http://444 http://444