Skip to content
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
Copyright 網絡設計教學 2025
Theme by ThemeinProgress
Proudly powered by WordPress
  • Home
  • Python教學
  • 科技新聞資訊
  • 網站開發教學
網絡設計教學網絡設計教學,網站網頁教學,軟體使用教學
  • You are here :
  • Home
  • python網頁教學
  • 解決Pytorch在測試與訓練過程中的驗證結果不一致問題 python 程式碼
python網頁教學

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

Jiking 2022-10-17 Article

引言

今天在使用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()

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支援。

You may also like

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

Shopify 直銷業務藍圖 | Tapswap 程式碼 | Shopify Dropshipping 藍圖:完整教學

這是 eBay 和 Shopify 上的「商店」Prismatic Evolutions 預購詐騙嗎?特雷科TCG

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 上的直銷業務 | Tapswap 程式碼 |立即開始在 Shopify 上進行代發貨:完整設定教學

Shopify 直營店 | Tapswap 程式碼 |如何快速輕鬆地建立 Shopify 直銷商店

相关贴文:

  1. python concurrent.futures模塊的使用測試 python 程式碼
  2. Python測試開源工具splinter安裝與使用教程 python 程式碼
  3. 基於python實現微信收紅包自動化測試腳本(測試用例) python 程式碼
  4. Python實現DBSCAN聚類算法並樣例測試 python 程式碼
  5. 總結Python使用過程中的bug python 程式碼
  6. 腳本測試postman快速導出python接口測試過程示例 python 程式碼
  7. Python結合Selenium簡單實現Web自動化測試 python 程式碼
  8. Pytest執行unittest TestSuite(測試套件)的實現方法 python 程式碼
Tags: python, 測試, 程式碼, 過程中

近期文章

  • 如何將亞馬遜會員產品添加到WooCommerce Shop教程
  • WooCommerce產品頁面設計 – Elementor&ACF
  • 澳大利亞的7個最佳優質WooCommerce運輸插件
  • 如何安裝和使用aliexpress dropshipping和for wooCommerce
  • WooCommerce Cart的預覽全部
  • WooCommerce浮動購物車插件|現代購物車#woocommerce #wordpress
  • 高級WooCommerce插件評論:WooCommerce的助推器
  • 免費的WooCommerce產品過濾插件#WooCommerce
  • 🔥新更新!使用SeedProd(無代碼)創建WooCommerce商店

標籤雲

Dropshipping ecommerce JavaScript Joomla OSCHINA博客 python REBELLION Shopify Shopify 商店設置 Shopify 直銷 Woocommerce WordPress 代發貨 刀塔2 和 商店 商業 喬姆拉 在 如何創建 Shopify 商店 如何在 如何建立 Shopify 商店 如何開始代出貨 年 店舖教學 店鋪化 店鋪培訓 教學 獲獎產品 直銷 Shopify 直銷教程 科技資訊 程式碼 網路業務 網路賺錢 臉書廣告 與 行銷 詳解 購物 跨平台 運輸船 適合初學者的 Shopify 教學課程 適合初學者的直銷 電子商務

Copyright 網絡設計教學 2025