兩件小事

今天白天繼續(xù)研究GCN的源碼,又出現(xiàn)了被一個小問題折磨半天的情況。


GCN正則化部分源碼

torch_geometric中的GCNConv是一個繼承torch.nn.Module的類。但是根據(jù)pytorch的風格,我們可以實例化一個my_-gcn = GCNConv(in_-channels, out_-channels),然后把這個實例化對象my_-gcn像函數(shù)一樣調(diào)用,例如?x = my_-gcn(x, edge_-index)進行圖卷積。問題來了,這個GCNConv類在初始化的時候有個參數(shù)cached,表示是否緩存這次計算好的規(guī)范化鄰接矩陣,并且在下次計算的時候直接用緩存值而非重新計算。我一開始怎么也沒想通,這個代碼的邏輯。覺得每次計算好歸規(guī)范化鄰接矩陣之后雖然將值保留到self._-cached_-edge_-index里了,但是隨著一次卷積運算結(jié)束,my_-gcn調(diào)用完成后,函數(shù)自動釋放,self._-cached_-edge_-index中的值無法保留到下一個my_-gcn函數(shù)里呀。

后來發(fā)現(xiàn)自己真的膚淺了,根本原因是沒有搞懂這個類的實例化對象作為函數(shù)的方式。要是my_-gcn只是一個一般的函數(shù),那么在這個函數(shù)中修改的局部變量自然無法在下次調(diào)用中使用。但是實際上my_-gcn是一個類的實例,并且這個類的實例在初始化后,便可以無數(shù)次調(diào)用。由于其沒有釋放內(nèi)存,其私有變量即self.xxx在修改后是會保留到下次調(diào)用的時候的。這樣實例化一個類作為模型中的一層,并且模型訓練過程中不斷修改層(也就是實例)中的參數(shù)的方式,是pytorch一個重要的特性。試想一下,如果模型中的一個層如果是一個普通的函數(shù)而非實例化的對象,那么函數(shù)在執(zhí)行完后是無法對其參數(shù)進行更新的,除非有很多全局變臉(那樣就亂了呀)。用類的__call__方法(pytorch的模型中是forward方法)將實例像函數(shù)一樣調(diào)用,使得這個特殊的函數(shù)的運行在和模型一樣的空間和時間下(這話是我自己的理解,不一定對),進而使得了函數(shù)中的變量(實例中的私有變量)可以保留上次模型對其做的改變。非常佩服,非常服氣。說到底自己還是對于Python中萬物皆對象的特性理解的不夠深,對于類的__call__特征理解的不夠深。這個方法真的有很多神奇的功能,比如裝飾器等等。

第二件事是自己身體狀態(tài)的事,真的讓我震驚了。為了讓一家人增加抵抗力,今天帶一家人出門跑步,跑的很慢,龜速那種,配速大概9分鐘一公里。跑完一家都很舒服,多巴胺和內(nèi)啡肽分泌,也能明顯感覺到大家都很開心。但是跑完后的1個小時后,我又出現(xiàn)了那種類似低血糖的感覺,即大腦非常疲憊,幾乎無法思考,學什么都沒有力氣,一副缺氧奄奄一息的狀態(tài)。這樣的狀態(tài)大概持續(xù)了兩三個小時,我就納悶了,平時我跑個5公里10公里出現(xiàn)這樣的情況容易理解,這次這么龜速地跑4公里,身體應該完全能過承受得了這個運動量才對,怎么可能在多巴胺內(nèi)啡肽退去后又這么累呢?后來我問我爸媽有沒有同樣出現(xiàn)過我那種困頓疲乏的狀態(tài),他們說:跑完步精神地很,怎么可能累嗎?我直接黑人問號臉??!原來真的是我自己的問題,而不是運動量過大。很可能是我激素分泌的原因,對于多巴胺、內(nèi)啡肽或者腎上腺素這幾個激素濃度降低有更敏感的反應。具體什么原因還有待進一步實驗,準備買個可穿戴血糖儀,先測試一下運動前后血糖的變化吧。

別人都是跑完步高效一整天,我是跑完步興奮1小時,之后萎靡大半天。從效率角度上來講,很虧呀?。。?/p>

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 做飯給自己:最近沒有工作,慢慢找回生活的秩序感,買了一批食材、調(diào)料、餐具過上了自己做一人食的小精致生活。不管大家是...
    一番可愛呀閱讀 352評論 0 3
  • 其一昨晚的磨洋工時間去看了一個YY在線的cos后期教程,教怎么換背景,教的東西基本都是我已經(jīng)會了的,沒學到什么新鮮...
    lxt閱讀 228評論 5 1
  • 第一件事,堅持運動 晚上團契時候已經(jīng)很困很累了,回到家已近十點,想著放棄跑步,默默的往往自己房間縮。又很想看看天天...
    古月一閱讀 193評論 0 1
  • 這兩天真的是有很多煩心事,但是有些事情如果深入思考一下,真的是讓人很受啟發(fā)。 先是一個親戚在保險公司里受了委屈。事...
    武哥a閱讀 357評論 0 1
  • 掐指一算,好像已經(jīng)有小半個月沒來簡書寫作了,內(nèi)心很是恐慌。于是整理出如標題中的內(nèi)容與大家分享。 一段自白 從我的I...
    Aria_zhang閱讀 535評論 2 1

友情鏈接更多精彩內(nèi)容