當前位置:
首頁 >
pytorch 笔记 :实现Dropout
發布時間:2025/4/5
34
豆豆
生活随笔
收集整理的這篇文章主要介紹了
pytorch 笔记 :实现Dropout
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1 理論部分
首先說明一點,dropout是用來解決overfitting的,如果在訓練集上實驗效果就不理想,那么加了dropout也救不了。
1.1 training時的dropout
使用了Dropout之后,訓練的時候,每個神經元都有p的概率不向后傳遞自己的信息。
把上圖畫×的申請元擦掉(因為這些神經元不傳遞自己的信息,在本輪training中是沒有作用的),可以得到一個更“細”的神經網路
但這并不代表其他的神經元沒有作用了。對每個mini-batch,我們重新計算那些神經元參與傳遞哪些沒有。所以最后所有的參數都會被更新的。
1.2 testing時的dropout
測試模型的時候,神經元就都是相連的了,只不過權重值得乘以(1-p%)
從另一個視角看dropput,它相當于把一堆共享參數的model整合起來
2? pytorch實現Dropout
Dropout訓練的時候,需要聲明model.train()(不聲明也行,因為默認是train狀態)
Dropout測試的時候,則是需要聲明model.eval()(如果不希望開啟dropout進行訓練,所有的神經元都參與前向傳播和反向傳播的話,在訓練階段開啟前聲明model.eval()即可)
#導入庫 import torch#神經網絡結構聲明 net=torch.nn.Sequential(torch.nn.Linear(1,16),torch.nn.Dropout(p=0.5),torch.nn.ReLU(),torch.nn.Linear(16,2))net.train() net.eval() net ''' Sequential((0): Linear(in_features=1, out_features=16, bias=True)(1): Dropout(p=0.5, inplace=False)(2): ReLU()(3): Linear(in_features=16, out_features=2, bias=True) ) '''?
總結
以上是生活随笔為你收集整理的pytorch 笔记 :实现Dropout的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: pytorch笔记:搭建简易CNN
- 下一篇: 文巾解题 1046. 最后一块石头的重量