【发布时间】:2022-01-15 18:56:34
【问题描述】:
我想用我的小数据集重新训练自定义模型。我可以加载预训练的权重 (.pth) 并在 Pytorch 中运行它。但是,我需要更多功能并将代码重构为 Pytorch Lightning,但我不知道如何将预训练的权重加载到 Pytorch Lightning 模型中。
请在下面查看我的代码的详细信息:
class BDRAR(nn.Module):
def __init__(self):
super(BDRAR, self).__init__()
resnext = ResNeXt101()
self.layer0 = resnext.layer0
self.layer1 = resnext.layer1
self.layer2 = resnext.layer2
self.layer3 = resnext.layer3
self.layer4 = resnext.layer4
Pytorch 闪电代码:
class liteBDRAR(pl.LightningModule):
def __init__(self):
super(liteBDRAR, self).__init__()
self.model = BDRAR()
print('Model Created!')
def forward(self, x):
return self.model(x)
Pytorch 闪电运行:
path = './ckpt/BDRAR/3000.pth'
bdrar = liteBDRAR.load_from_checkpoint(path, strict=False)
trainer = pl.Trainer(fast_dev_run=True, gpus=1)
trainer.fit(bdrar)
错误:
keys = model.load_state_dict(checkpoint["state_dict"], strict=strict)
**KeyError: 'state_dict'**
我将不胜感激。
谢谢。
【问题讨论】:
标签: deep-learning pytorch pytorch-lightning