婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > pytorch 實現在測試的時候啟用dropout

pytorch 實現在測試的時候啟用dropout

熱門標簽:地圖標注線上如何操作 400電話辦理哪種 河北防封卡電銷卡 開封語音外呼系統代理商 天津電話機器人公司 電銷機器人的風險 應電話機器人打電話違法嗎 手機網頁嵌入地圖標注位置 開封自動外呼系統怎么收費

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

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

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

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)

運行結果:

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

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

一.做數據

二.搭建神經網絡

三.訓練

四.對比測試結果

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

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • 淺談pytorch中的dropout的概率p
  • PyTorch 實現L2正則化以及Dropout的操作
  • Python深度學習pytorch神經網絡Dropout應用詳解解

標簽:成都 常州 六盤水 駐馬店 山東 宿遷 蘭州 江蘇

巨人網絡通訊聲明:本文標題《pytorch 實現在測試的時候啟用dropout》,本文關鍵詞  pytorch,實,現在,測試,的,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《pytorch 實現在測試的時候啟用dropout》相關的同類信息!
  • 本頁收集關于pytorch 實現在測試的時候啟用dropout的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 安化县| 河津市| 错那县| 九龙县| 邹城市| 汉寿县| 阳高县| 吉安市| 沅江市| 北川| 临漳县| 吉林市| 密山市| 海兴县| 嵊泗县| 玉屏| 崇阳县| 上饶县| 陕西省| 阿城市| 项城市| 扎兰屯市| 荣昌县| 呼伦贝尔市| 神农架林区| 梁山县| 三原县| 永城市| 若尔盖县| 栾川县| 镇远县| 宁远县| 西林县| 库车县| 文化| 措勤县| 刚察县| 望奎县| 闵行区| 仲巴县| 胶南市|