Pytorch 从检查点加载模型不起作用

Pytorch 从检查点加载模型不起作用,pytorch,pytorch-lightning,Pytorch,Pytorch Lightning,我训练了一个香草vae,我用它改装。当我尝试使用经过训练的模型时,我无法使用load\u from\u checkpoint加载权重。我的checkpoint对象和我的lightningModule对象之间似乎不匹配 我已经使用Pytork lightning lightning Module设置了一个实验(VAExperience)。我尝试通过以下方式将权重加载到网络中: #building a new model model = VanillaVAE(**config['model_para

我训练了一个香草vae,我用它改装。当我尝试使用经过训练的模型时,我无法使用
load\u from\u checkpoint
加载权重。我的checkpoint对象和我的
lightningModule
对象之间似乎不匹配

我已经使用Pytork lightning lightning Module设置了一个实验(
VAExperience
)。我尝试通过以下方式将权重加载到网络中:

#building a new model
model = VanillaVAE(**config['model_params'])
model.build_layers()

#loading the weights
experiment = VAEXperiment(model, config['exp_params'])
experiment.load_from_checkpoint(path_to_checkpoint, config['exp_params'])
我还尝试:

checkpoint = torch.load(path_to_checkpoint, map_location=lambda storage, loc: storage)
model.load_state_dict(checkpoint['state_dict'])
但我犯了个错误
状态为“model.encoder.0.0.weight”、“model.encoder.0.0.bias”的意外键

我也关注了这个问题


为什么我会犯这个错误?这是因为我的模型中的编码器和解码器模块吗?根据git上的问题日志,错误似乎已解决。我做错了什么?

发布评论中的答案:

experiment.load\u state\u dict(检查点['state\u dict'])

后一种情况的问题是
VanillaVAE.model.encoder
不存在。但是VanillaVAE.encoder是这样做的。您是否尝试过
实验。加载状态记录(检查点['state\u dict')
?谢谢。这是正确的答案。真不敢相信我竟然没弄明白。