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

时间:2020-08-04 08:54:29

标签: pytorch pytorch-lightning

我训练了从this repository修改过来的香草味。当我尝试使用训练有素的模型时,无法使用<Component Id="cmp_extra_shortcuts" Guid="*"> <!-- ODBC Manager shortcut --> <Shortcut Id="*" Name="ODBC Manager (32-Bit)" Target="[SystemFolder]odbcad32.exe" Description="Windows ODBC Manager (32-Bit)" Directory="ProgramMenuToolsDir" Advertise="no" WorkingDirectory="PRODUCTFOLDER" Show="normal"/> <RegistryValue Root="HKCU" Key="Software\$(var.CompanyFolder)\$(var.ApplicationNameWithVersion)" Name="Installed" Type="integer" Value="1" KeyPath="yes"/> </Component> 加载权重。看来我的检查点对象和load_from_checkpoint对象之间不匹配。

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

pytorch-lightning LightningModule

我也尝试过:

#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']) ...

我也关注了 https://github.com/PyTorchLightning/pytorch-lightning/issues/924 https://github.com/PyTorchLightning/pytorch-lightning/issues/2798

为什么我会收到此错误?是因为我模型中的编码器和解码器模块吗?根据问题登录git,似乎错误已解决。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

发布评论的答案:

experiment.load_state_dict(checkpoint['state_dict'])