Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于模型导入预训练参数问题 #73

Open
HeterCol opened this issue Mar 21, 2019 · 0 comments
Open

关于模型导入预训练参数问题 #73

HeterCol opened this issue Mar 21, 2019 · 0 comments

Comments

@HeterCol
Copy link

自己的深度学习模型可以导入已经预训练好的参数,采用如下的代码可以导入原模型与预训练模型名字相同层的参数。

pretrained_model = models.xxx(pretrained=True)
my_model = net()
pretrained_dict = pretrained_model.state_dict()
model_dict = my_model.state_dict()
pretrained_dict = {k: v for k, v in pretrained_dict.items() if k in model_dict}
model_dict.update(pretrained_dict)
my_model.load_state_dict(model_dict)

但是如果我的模型和预训练好的模型结构不是完全相同,例如,原预训练模型是若干个conv_2d直接连接而成,而我的模型在每两个conv_2d中间会有一个nn.BatchNorm层,这样导致想要导入参数的层和我模型中的层有错开的情况,再使用上述代码进行导入参数时,由于名字没有办法匹配上,所以就没法按照原先想的吧conv_2d的参数互相导入,请问我说的这种情况有办法解决吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant