我试过这个:
model2.down1.maxpool_conv.1.double_conv.0.weight.copy_(state_dict['layer1.0.conv1.weight'])但我得到了下面的错误信息:
model2.down1.maxpool_conv.1.double_conv.0.weight.copy_(state_dict['layer1.0.conv1.weight'])
^
SyntaxError: invalid syntax但是我的模型输出显示它有"down1.maxpool_conv.1.double_conv.0.weight“

发布于 2022-03-21 22:12:38
Python不允许numbers是属性,因此如果您以某种方式创建了一个具有这些属性的对象(只能通过低级函数调用来完成),您将无法通过点表示法访问它们(这就是为什么您会得到一个无效的语法错误,而不是类似于属性未找到错误)。
相反,您应该使用循环中已经包含的param引用,并执行副本。
for name, param in model2.named_parameters():
if name == 'down1.maxpool_conv.1.double_conv.0.weight':
param.copy_(state_dict['layer1.0.conv1.weight'])https://stackoverflow.com/questions/71564677
复制相似问题