Pytorch中的Meter是什么?(結合源碼)

Date: 2020/07/25

Coder: CW

Foreword:

CW有時候逛Github會發(fā)現(xiàn)不少項目代碼中使用到了Meter這個類,meter這個詞的意思是儀表,從名稱上來看莹捡,能feel到它應該是用來度量和記錄某些統(tǒng)計量的,結合項目代碼的上下文也能看明白的確是這樣的意思扣甲。

但是篮赢,之前對Meter的理解也就止步于此齿椅,由于最近它在我逛Github時出現(xiàn)的頻率越來越高,因此就忍不住瞄了下相關源碼启泣,現(xiàn)在我就把這成果記錄在本文涣脚,分享給大家以便快速了解下Meter的打開方式。


Outline

I. Meter概述

II. 舉例:AverageValueMeter

III. 舉例:ConfusionMeter


Meter概述

Meter?這個類是在torchnet.meter模塊中實現(xiàn)的寥茫,它其實是一個抽象類遣蚀,也就是不會干活的家伙,也就裝裝逼纱耻,但能干活的比如ConfusionMeter芭梯、AverageValueMeter(后文會介紹)等都得膜拜它當大佬(作為它的子類),廢話不多說弄喘,先來看看doc string:

Meter(i)

如上圖所述玖喘,它是用來“跟蹤”一些統(tǒng)計量的,也就是能夠在一段“歷程”中記錄下某個統(tǒng)計量在迭代過程中不斷變化的值限次,并統(tǒng)計相關的量。

作為大佬(抽象類)柴灯,它提供了以下接口供小弟(子類)們實現(xiàn)卖漫。

Meter(ii)

舉例:AverageValueMeter

Meter有很多子類,這里就AverageValueMeter來舉個例子說明下其作用赠群。

AverageValueMeter(i)

從名字看來羊始,AverageValueMeter返回的應該是統(tǒng)計量的均值。哦查描,看了其實現(xiàn)的value()這個接口后突委,可以知道它還返回了標準差。由于它暴露給外界獲取值的只有value()這個接口冬三,因此通過這個Meter并不能知道統(tǒng)計量每次迭代的最新值匀油,僅僅能夠知道均值和標準差。

另外說明下勾笆,self.n其實并不一定等于迭代次數(shù)敌蚜。因為可以對每次加入的數(shù)值設置單位量(相當于權重),通常來說窝爪,每次迭代得到一個新的數(shù)值弛车,單位量為1,代表多了一個數(shù)蒲每,這樣的話self.n就等同于迭代次數(shù)纷跛。

AverageValueMeter(ii)

重頭戲來了,看看每次迭代更新的過程中邀杏,它做了什么贫奠。

看下圖,如上所述,若加入數(shù)值時單位量不為1叮阅,那么到頭來self.n就不是迭代次數(shù)了刁品,而是在整個迭代過程中單位量的總和。

AverageValueMeter(iii)

這里對于均值和標準差需要稍微動下腦筋進行推導浩姥,此處就均值的計算進行下說明挑随。

self.mean = self.sum / self.n 這點毋庸置疑,OK開始往下推導勒叠。

self.sum = sum_old + value兜挨,而sum_old=self.mean_old * (self.n - n),于是:

self.sum = self.mean_old * (self.n - n) + value眯分,去括號重新組合下:

self.sum = self.mean_old * self.n + (value - n * self.mean_old)

從而得到 self.mean = self.mean_old + (value - n* self.mean_old) / self.n


舉例:ConfusionMeter

一個例子不過癮拌汇?再來個嘗嘗香不香!

顧名思義弊决,ConfusionMeter是混淆矩陣形式的Meter噪舀。

ConfusionMeter(i)

self.conf就是混淆矩陣,conf是confusion的意思飘诗,初始化為0与倡。

ConfusionMeter(ii)

這個Meter暴露給外界的也就是這個混淆矩陣。

ConfusionMeter(iii)

這里需要注意下昆稿,如果是K分類(通過初始化是設置self.k)問題纺座,那么這里傳入的預測和目標的各個值需要在[0, K-1]范圍內(nèi)。

ConfusionMeter(iv)
ConfusionMeter(v)

target可以是二維的溉潭,對應的是one-hot形式净响。

ConfusionMeter(vi)

精華都在以下這張圖里,舉個例子來說明喳瓣。

假如是二分類問題馋贤,此時self.k=2,同時predicted和target的取值范圍都在[0, 1]內(nèi)畏陕,那么x的取值就可能是0掸掸、1、2蹭秋、3這4種情況扰付。直觀上來看,處于邊界的兩種情況(0和3)代表預測效果較好仁讨,因為0的時候predicted和target都為0羽莺,而3的時候兩者都為1,也就是預測都正確了洞豁。

np.bincount會根據(jù)x的各個值劃分bin(區(qū)間)盐固,然后統(tǒng)計x中每個值出現(xiàn)的次數(shù)荒给,對應到每個bin上(想象下條形圖那種結構)。最后再將bincount的結果reshape到kxk矩陣的形式刁卜。

ConfusionMeter(vii)
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
禁止轉載志电,如需轉載請通過簡信或評論聯(lián)系作者。
  • 序言:七十年代末蛔趴,一起剝皮案震驚了整個濱河市挑辆,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌孝情,老刑警劉巖鱼蝉,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異箫荡,居然都是意外死亡魁亦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門羔挡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來洁奈,“玉大人,你說我怎么就攤上這事绞灼±酰” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵镀赌,是天一觀的道長氯哮。 經(jīng)常有香客問我际跪,道長商佛,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任姆打,我火速辦了婚禮良姆,結果婚禮上,老公的妹妹穿的比我還像新娘幔戏。我一直安慰自己玛追,他們只是感情好,可當我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布闲延。 她就那樣靜靜地躺著痊剖,像睡著了一般。 火紅的嫁衣襯著肌膚如雪垒玲。 梳的紋絲不亂的頭發(fā)上陆馁,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音合愈,去河邊找鬼叮贩。 笑死击狮,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的益老。 我是一名探鬼主播彪蓬,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼捺萌!你這毒婦竟也來了档冬?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤互婿,失蹤者是張志新(化名)和其女友劉穎捣郊,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慈参,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡呛牲,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了驮配。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娘扩。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖壮锻,靈堂內(nèi)的尸體忽然破棺而出琐旁,到底是詐尸還是另有隱情,我是刑警寧澤猜绣,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布灰殴,位于F島的核電站,受9級特大地震影響掰邢,放射性物質發(fā)生泄漏牺陶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一辣之、第九天 我趴在偏房一處隱蔽的房頂上張望掰伸。 院中可真熱鬧,春花似錦怀估、人聲如沸狮鸭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽歧蕉。三九已至,卻和暖如春康铭,著一層夾襖步出監(jiān)牢的瞬間惯退,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工麻削, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蒸痹,地道東北人春弥。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像叠荠,于是被迫代替她去往敵國和親匿沛。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,884評論 2 354