@Silencewang torchvision.transforms.ToTensor 是会顺便帮你将 [0, 255] 的值转成 [0, 1]的,但 torchvision.transforms.ToPILImage 不会顺便帮你转回去,要把 tensor *= 255 一下。
测试时,逻辑上是要用 .eval() 的,当然不用也是跑的动啦。 说回代码,我看了一下是目前是看到 BN 层,有复用的问题,每个 BN 层都有自己的参数,一般不用在其他地方。 不过把 .eval() 拿掉,结果比较好是挺不正常的,我的直觉是觉得是因为其他的问题。
self.relu(self.bn()),这样是没问题的。 主要是model.eval(),会把 batch normalization layer 的参数锁起来,不会更新。