造成該結果的操作:修改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