Bug1
对tensor进行.view操作时报错。但是重新torch.randn(xxx)再view是正常的,发现是因为view操作对内存有连续性要求,用tensor.contiguous()解决。
Bug2
单卡训练正常,多卡训练报错,称存在in_place操作。发现是因为nn.BatchNorm2d在多卡时可能存在问题,问题可能与多卡并行训练(Distributed Data Parallel, DDP) 的BatchNorm 层行为不兼容有关。
解决方法:使用 track_running_stats=False。(还有其他方法例如使用 nn.SyncBatchNorm 代替 nn.BatchNorm)
https://www.cnblogs.com/jins-note/p/13440772.html 解释了track_running_stats参数。