深度學習報錯:Expected more than 1 value per channel when training, got input size torch.Size([1, 256])


  造成該結果的操作:修改batch_size 128 to 32

  根本原因:模型中用了batchnomolization,訓練中用batch訓練的時候當前batch恰好只含一個sample,而由於BatchNorm操作需要多於一個數據計算平均值,因此造成該錯誤。

  解決方法:在torch.utils.data.DataLoader類中或自己創建的繼承於DataLoader的類中設置參數drop_last=True,把不夠一個batch_size的數據丟棄。

  

 DataLoader(train_set, batch_size=args.train_batch_size,
           num_workers=args.num_workers, shuffle=True, 
           drop_last=True)

  以此格式添加即可,已解決

  參考鏈接:https://www.cnblogs.com/zmbreathing/p/pyTorch_BN_error.html

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM