人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

pytorch 實現(xiàn)在測試的時候啟用dropout

發(fā)布日期:2022-04-04 19:26 | 文章來源:站長之家

我們知道,dropout一般都在訓練的時候使用,那么測試的時候如何也開啟dropout呢?

在pytorch中,網(wǎng)絡有train和eval兩種模式,在train模式下,dropout和batch normalization會生效,而val模式下,dropout不生效,bn固定參數(shù)。

想要在測試的時候使用dropout,可以把dropout單獨設為train模式,這里可以使用apply函數(shù):

def apply_dropout(m):
 if type(m) == nn.Dropout:
  m.train()

下面是完整demo代碼:

# coding: utf-8
import torch
import torch.nn as nn
import numpy as np
class SimpleNet(nn.Module):
 def __init__(self):
  super(SimpleNet, self).__init__()
  self.fc = nn.Linear(8, 8)
  self.dropout = nn.Dropout(0.5)
 def forward(self, x):
  x = self.fc(x)
  x = self.dropout(x)
  return x
net = SimpleNet()
x = torch.FloatTensor([1]*8)
net.train()
y = net(x)
print('train mode result: ', y)
net.eval()
y = net(x)
print('eval mode result: ', y)
net.eval()
y = net(x)
print('eval2 mode result: ', y)
def apply_dropout(m):
 if type(m) == nn.Dropout:
  m.train()
net.eval()
net.apply(apply_dropout)
y = net(x)
print('apply eval result:', y)

運行結(jié)果:

可以看到,在eval模式下,由于dropout未生效,每次跑的結(jié)果不同,利用apply函數(shù),將Dropout單獨設為train模式,dropout就生效了。

補充:Pytorch之dropout避免過擬合測試

一.做數(shù)據(jù)

二.搭建神經(jīng)網(wǎng)絡

三.訓練

四.對比測試結(jié)果

注意:測試過程中,一定要注意模式切換

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持本站。

海外服務器租用

版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部