您好,登錄后才能下訂單哦!
小編給大家分享一下pytorch中nn.Dropout怎么使用,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
Class USeDropout(nn.Module): def __init__(self): super(DropoutFC, self).__init__() self.fc = nn.Linear(100,20) self.dropout = nn.Dropout(p=0.5) def forward(self, input): out = self.fc(input) out = self.dropout(out) return out Net = USeDropout() Net.train()
示例代碼如上,直接調用nn.Dropout即可,但是注意在調用時要將模型參數傳入。
補充:Pytorch的nn.Dropout運行穩定性測試
Pytorch的nn.Dropout在每次被調用時dropout掉的參數都不一樣,即使是同一次forward也不同。
如果模型里多次使用的dropout的dropout rate大小相同,用同一個dropout層即可。
import torch import torch.nn as nn class MyModel(nn.Module): def __init__(self): super(MyModel, self).__init__() self.dropout_1 = nn.Dropout(0.5) self.dropout_2 = nn.Dropout(0.5) def forward(self, input): # print(input) drop_1 = self.dropout_1(input) print(drop_1) drop_1 = self.dropout_1(input) print(drop_1) drop_2 = self.dropout_2(input) print(drop_2) if __name__ == '__main__': i = torch.rand((5, 5)) m = MyModel() m.forward(i)
結果如下:
*\python.exe */model.py
tensor([[0.0000, 0.0914, 0.0000, 1.4095, 0.0000],
[0.0000, 0.0000, 0.1726, 1.3800, 0.0000],
[1.7651, 0.0000, 0.0000, 0.9421, 1.5603],
[1.0510, 1.7290, 0.0000, 0.0000, 0.8565],
[0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])
tensor([[0.0000, 0.0000, 0.4722, 1.4095, 0.0000],
[0.0416, 0.0000, 0.1726, 1.3800, 1.3193],
[0.0000, 0.3401, 0.6550, 0.0000, 0.0000],
[1.0510, 1.7290, 1.5515, 0.0000, 0.0000],
[0.6388, 0.0000, 0.0000, 1.0122, 0.0000]])
tensor([[0.0000, 0.0000, 0.4722, 0.0000, 1.2689],
[0.0416, 0.0000, 0.0000, 1.3800, 0.0000],
[0.0000, 0.0000, 0.6550, 0.0000, 1.5603],
[0.0000, 0.0000, 1.5515, 1.4596, 0.0000],
[0.0000, 0.0000, 0.0000, 0.0000, 0.0000]])Process finished with exit code 0
1.PyTorch是相當簡潔且高效快速的框架;2.設計追求最少的封裝;3.設計符合人類思維,它讓用戶盡可能地專注于實現自己的想法;4.與google的Tensorflow類似,FAIR的支持足以確保PyTorch獲得持續的開發更新;5.PyTorch作者親自維護的論壇 供用戶交流和求教問題6.入門簡單
看完了這篇文章,相信你對“pytorch中nn.Dropout怎么使用”有了一定的了解,如果想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。