婷婷综合国产,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在測試與訓練過程中的驗證結果不一致問題的相關信息資訊供網民參考!
  • 企业400电话

    智能AI客服机器人
    15000

    在线订购

    合计11份范本:公司章程+合伙协议+出资协议+合作协议+股权转让协议+增资扩股协议+股权激励+股东会决议+董事会决议

    推薦文章
    主站蜘蛛池模板: 丹阳市| 张家界市| 新河县| 华蓥市| 成武县| 息烽县| 克拉玛依市| 马关县| 北流市| 加查县| 洪江市| 绍兴县| 同德县| 尉氏县| 略阳县| 运城市| 揭阳市| 永善县| 绥滨县| 乳山市| 谷城县| 旌德县| 南充市| 富民县| 称多县| 金寨县| 米林县| 万年县| 中西区| 廉江市| 喀喇沁旗| 喀喇| 金湖县| 绿春县| 若尔盖县| 沙坪坝区| 土默特左旗| 英山县| 淅川县| 涟源市| 珲春市|