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

主頁 > 知識庫 > 解決Pytorch在測試與訓練過程中的驗證結果不一致問題

解決Pytorch在測試與訓練過程中的驗證結果不一致問題

熱門標簽:市場上的電銷機器人 小蘇云呼電話機器人 儋州電話機器人 所得系統電梯怎樣主板設置外呼 北京電銷外呼系統加盟 朝陽手機外呼系統 地圖標注面積 北瀚ai電銷機器人官網手機版 佛山400電話辦理

引言

今天在使用Pytorch導入此前保存的模型進行測試,在過程中發現輸出的結果與驗證結果差距甚大,經過排查后發現是forward與eval()順序問題。

現象

此前的錯誤代碼是

    input_cpu = torch.ones((1, 2, 160, 160))
    target_cpu =torch.ones((1, 2, 160, 160))
    target_gpu, input_gpu = target_cpu.cuda(), input_cpu.cuda()
    model.set_input_2(input_gpu, target_gpu)
    model.eval()
    model.forward()

應該改為

    input_cpu = torch.ones((1, 2, 160, 160))
    target_cpu =torch.ones((1, 2, 160, 160))
    target_gpu, input_gpu = target_cpu.cuda(), input_cpu.cuda()
    model.set_input_2(input_gpu, target_gpu)
    # 先forward再eval
    model.forward()
    model.eval()

當時有個疑慮,為什么要在forward后面再加eval(),查了下相關資料,主要是在BN層以及Dropout的問題。

當使用eval()時,模型會自動固定BN層以及Dropout,選取訓練好的值,否則則會取平均,可能導致生成的圖片顏色失真。

PyTorch進行訓練和測試時一定注意要把實例化的model指定train/eval

使用PyTorch進行訓練和測試時一定注意要把實例化的model指定train/eval,eval()時,框架會自動把BN和DropOut固定住,不會取平均,而是用訓練好的值,不然的話,一旦test的batch_size過小,很容易就會被BN層導致生成圖片顏色失真極大!!!!!!

eg:

Class Inpaint_Network()
......
Model = Inpaint_Nerwoek()

#train:
Model.train(mode=True)
.....

#test:
Model.eval()

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

您可能感興趣的文章:
  • Pytorch evaluation每次運行結果不同的解決
  • pytorch加載預訓練模型與自己模型不匹配的解決方案
  • 踩坑:pytorch中eval模式下結果遠差于train模式介紹

標簽:金融催收 江蘇 龍巖 云南 商丘 定西 寧夏 酒泉

巨人網絡通訊聲明:本文標題《解決Pytorch在測試與訓練過程中的驗證結果不一致問題》,本文關鍵詞  解決,Pytorch,在,測試,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《解決Pytorch在測試與訓練過程中的驗證結果不一致問題》相關的同類信息!
  • 本頁收集關于解決Pytorch在測試與訓練過程中的驗證結果不一致問題的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 德化县| 景洪市| 日照市| 肇源县| 安丘市| 当雄县| 英德市| 且末县| 于田县| 西贡区| 东台市| 清徐县| 北流市| 双柏县| 甘南县| 邹城市| 乌鲁木齐市| 琼中| 定南县| 镇平县| 德惠市| 姜堰市| 吴川市| 交口县| 翁牛特旗| 平原县| 阳江市| 新化县| 资中县| 含山县| 肃宁县| 灵石县| 泸定县| 保德县| 安仁县| 郧西县| 南充市| 垫江县| 铜梁县| 聂荣县| 汉川市|