我训练了一个香草vae,它是我从this repository修改的。当我尝试使用经过训练的模型时,我无法使用load_from_checkpoint加载权重。我的checkpoint对象和我的lightningModule对象似乎不匹配。
我已经使用pytorch-lightning LightningModule设置了一个实验(VAEXperiment)。我尝试使用以下命令将权重加载到网络中:
#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'])但是我得到一个错误Unexpected key(s) in state_dict: "model.encoder.0.0.weight", "model.encoder.0.0.bias"..。
我还在https://github.com/PyTorchLightning/pytorch-lightning/issues/924 https://github.com/PyTorchLightning/pytorch-lightning/issues/2798上关注了这个问题
为什么我会得到这个错误?是不是因为我模型中的编码器和解码器模块?根据git上的问题日志,错误似乎已经解决。我做错了什么?
发布于 2020-08-04 20:45:21
发布评论中的答案:
experiment.load_state_dict(checkpoint['state_dict'])https://stackoverflow.com/questions/63243359
复制相似问题