【问题标题】:Pytorch Lightning Loaded Model Gives Different Results Each TimePytorch Lightning 加载模型每次都会给出不同的结果
【发布时间】:2022-01-22 11:21:01
【问题描述】:
我有一个 U-Net 架构,当我训练模型并打印出一些结果而不加载它时,模型给出了很好的结果,但是当我加载模型检查点文件并尝试进行预测时,它会预测随机噪声,甚至更糟它对使用相同测试集的每次运行给出不同的预测
这是我的代码
model.py https://pastecode.io/s/nhjznzxc
train.py https://pastecode.io/s/umjqprb3
pred.py https://pastecode.io/s/m9zkpwk5
【问题讨论】:
标签:
python
pytorch
conv-neural-network
image-segmentation
pytorch-lightning
【解决方案1】:
load_from_checkpoint() 不是内部函数,您需要将其分配给model 变量。否则,您只是使用了一个随机初始化的模型,这会导致不同的结果。
model = model.load_from_checkpoint('Model/last.ckpt', in_channels=1, out_channels=N_CLASSES, features=[16, 32, 64, 128, 192, 256], batch_size=16)
我会推荐使用pytorch_lightning.seed_everything(seed) 来控制随机种子。