pytorch學習使用筆記(持續更新)

2021-10-03 09:48:57 字數 804 閱讀 3714

model.eval()和torch.zero_grad()

兩者區別

在pytorch中進行validation時,會使用model.

eval

()切換到測試模式,在該模式下,

主要用於通知dropout層和batchnorm層在train和val模式間切換

在train模式下,dropout網路層會按照設定的引數p設定保留啟用單元的概率(保留概率=p)

; batchnorm層會繼續計算資料的mean和var等引數並更新。

在val模式下,dropout層會讓所有的啟用單元都通過,而batchnorm層會停止計算和更新mean和var,直接使用在訓練階段已經學出的mean和var值。

該模式不會影響各層的gradient計算行為,即gradient計算和儲存與training模式一樣,只是不進行反傳(backprobagation)

而with torch.

zero_grad

()則主要是用於停止autograd模組的工作,以起到加速和節省視訊記憶體的作用,具體行為就是停止gradient計算,從而節省了gpu算力和視訊記憶體,但是並不會影響dropout和batchnorm層的行為。

使用場景

如果不在意視訊記憶體大小和計算時間的話,僅僅使用model.

eval

()已足夠得到正確的validation的結果;而with torch.

zero_grad

()則是更進一步加速和節省gpu空間(因為不用計算和儲存gradient),從而可以更快計算,也可以跑更大的batch來測試。

pytorch 個人使用筆記

debug 主要記錄遇到的bug和函式的筆記,減少重複搜尋 torch.eye n,m none,out none 得到單位矩陣,即對角線為1,不設定 m 預設方陣 torch.cat a,b dim 按維度拼接 torch.sum input,list dim,bool keepdim false...

robotframework使用筆記 持續更新

1.在rf中else 和else if必須要大寫,小寫識別不了 2.在用autoitlibrary的過程中,必須需要等視窗先出現,才能進行後續的操作,否則將無法執行選擇檔案的操作,等待視窗出現的情況,可用如下方法 等待視窗出現的時間,也可以用sleep,如下 以上三種方法均可執行成功,需要注意的是,...

LaTex使用筆記(持續更新)

眾所周知,要在latex中加入jpg,必須要借助graphicx包的幫助。在導言區加上 usepackage import figures然後在你想插入的地方加上 begin centering includegraphics height 4.5cm,width 9.5cm caption lab...