最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

可視化pytorch 模型中不同BN層的running mean曲線實例

 更新時間:2020年06月24日 08:35:20   作者:Nick Blog  
這篇文章主要介紹了可視化pytorch 模型中不同BN層的running mean曲線實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

加載模型字典

逐一判斷每一層,如果該層是bn 的 running mean,就取出參數(shù)并取平均作為該層的代表

對保存的每個BN層的數(shù)值進行曲線可視化

from functools import partial
import pickle
import torch
import matplotlib.pyplot as plt

pth_path = 'checkpoint.pth'

pickle.load = partial(pickle.load, encoding="latin1")
pickle.Unpickler = partial(pickle.Unpickler, encoding="latin1")
pretrained_dict = torch.load(pth_path, map_location=lambda storage, loc: storage, pickle_module=pickle)
pretrained_dict = pretrained_dict['state_dict']

means = []
for name, param in pretrained_dict.items():
 print(name)
 if 'running_mean' in name:
  means.append(mean.numpy())

layers = [i for i in range(len(means))]

plt.plot(layers, means, color='blue')
plt.legend()
plt.xticks(layers)
plt.xlabel('layers')
plt.show()

補充知識:關(guān)于pytorch中BN層(具體實現(xiàn))的一些小細節(jié)

最近在做目標(biāo)檢測,需要把訓(xùn)好的模型放到嵌入式設(shè)備上跑前向,因此得把各種層的實現(xiàn)都用C手擼一遍,,,此為背景。

其他層沒什么好說的,但是BN層這有個小坑。pytorch在打印網(wǎng)絡(luò)參數(shù)的時候,只打出weight和bias這兩個參數(shù)。咦,說好的BN層有四個參數(shù)running_mean、running_var 、gamma 、beta的呢?一開始我以為是pytorch把BN層的計算簡化成weight * X + bias,但馬上反應(yīng)過來應(yīng)該沒這么簡單,因為pytorch中只有可學(xué)習(xí)的參數(shù)才稱為parameter。上網(wǎng)找了一些資料但都沒有說到這么細的,畢竟大部分用戶使用時只要模型能跑起來就行了,,,于是開始看BN層有哪些屬性,果然發(fā)現(xiàn)了熟悉的running_mean和running_var,原來pytorch的BN層實現(xiàn)并沒有不同。這里吐個槽:為啥要把gamma和beta改叫weight、bias啊,很有迷惑性的好不好,,,

扯了這么多,干脆捋一遍pytorch里BN層的具體實現(xiàn)過程,幫自己理清思路,也可以給大家提供參考。再吐槽一下,在網(wǎng)上搜“pytorch bn層”出來的全是關(guān)于這一層怎么用的、初始化時要輸入哪些參數(shù),沒找到一個pytorch中BN層是怎么實現(xiàn)的,,,

眾所周知,BN層的輸出Y與輸入X之間的關(guān)系是:Y = (X - running_mean) / sqrt(running_var + eps) * gamma + beta,此不贅言。其中g(shù)amma、beta為可學(xué)習(xí)參數(shù)(在pytorch中分別改叫weight和bias),訓(xùn)練時通過反向傳播更新;而running_mean、running_var則是在前向時先由X計算出mean和var,再由mean和var以動量momentum來更新running_mean和running_var。所以在訓(xùn)練階段,running_mean和running_var在每次前向時更新一次;在測試階段,則通過net.eval()固定該BN層的running_mean和running_var,此時這兩個值即為訓(xùn)練階段最后一次前向時確定的值,并在整個測試階段保持不變。

以上這篇可視化pytorch 模型中不同BN層的running mean曲線實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python采用raw_input讀取輸入值的方法

    Python采用raw_input讀取輸入值的方法

    這篇文章主要介紹了Python采用raw_input讀取輸入值的方法,對初學(xué)者有很好的學(xué)習(xí)借鑒價值,需要的朋友可以參考下
    2014-08-08
  • Django Admin后臺添加數(shù)據(jù)庫視圖過程解析

    Django Admin后臺添加數(shù)據(jù)庫視圖過程解析

    這篇文章主要介紹了Django Admin后臺添加數(shù)據(jù)庫視圖過程解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Python中如何給字典設(shè)置默認值

    Python中如何給字典設(shè)置默認值

    這篇文章主要介紹了Python中如何給字典設(shè)置默認值問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧

    Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧

    bidict模塊通過一對一映射結(jié)構(gòu)的處理為Pyhton帶來雙向字典,能夠更加利用Python的切片功能,這里我們就來學(xué)習(xí)Python中使用bidict模塊雙向字典結(jié)構(gòu)的奇技淫巧:
    2016-07-07
  • Python中Selenium上傳文件的幾種方式

    Python中Selenium上傳文件的幾種方式

    本文主要介紹了Python中Selenium上傳文件的幾種方式,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • python Pexpect模塊的使用

    python Pexpect模塊的使用

    這篇文章主要介紹了python Pexpect模塊的使用,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-12-12
  • python去掉行尾的換行符方法

    python去掉行尾的換行符方法

    下面小編就為大家?guī)硪黄猵ython去掉行尾的換行符方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 淺談JupyterNotebook導(dǎo)出pdf解決中文的問題

    淺談JupyterNotebook導(dǎo)出pdf解決中文的問題

    這篇文章主要介紹了淺談JupyterNotebook導(dǎo)出pdf解決中文的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • python進度條庫tqdm使用記錄(特點和用法)

    python進度條庫tqdm使用記錄(特點和用法)

    tqdm是一個Python庫,用于在命令行界面中創(chuàng)建美觀的進度條,以跟蹤代碼中循環(huán)、迭代和任務(wù)的執(zhí)行進度,本文給大家介紹python進度條庫tqdm使用記錄,感興趣的朋友跟隨小編一起看看吧
    2023-10-10
  • Python使用Chrome插件實現(xiàn)爬蟲過程圖解

    Python使用Chrome插件實現(xiàn)爬蟲過程圖解

    這篇文章主要介紹了Python使用Chrome插件實現(xiàn)爬蟲,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06

最新評論

南乐县| 阿合奇县| 彭山县| 鹤峰县| 新龙县| 喜德县| 安图县| 稷山县| 邓州市| 芷江| 延安市| 略阳县| 康平县| 临泉县| 通江县| 商都县| 陆河县| 红原县| 乌鲁木齐县| 城口县| 左贡县| 台中市| 竹北市| 长春市| 无锡市| 明溪县| 鄂伦春自治旗| 上林县| 尼勒克县| 红桥区| 安陆市| 三门县| 涞源县| 四平市| 从江县| 雷山县| 天等县| 邵阳县| 宁德市| 内丘县| 蓝山县|