'odict_items'对象不能下标该如何处理?

我试图在Jupyter笔记本python 3上运行此代码:

class CSRNet(nn.Module): def __init__(self,load_weights=False): super(CSRNet,self).__init__() self.frontend_feat = [64,64,'M',128,256,512,512] self.backend_feat = [512,64] self.frontend = make_layers(self.frontend_feat) self.backend = make_layers(self.backend_feat,in_channels = 512,dilation = True) self.output_layer = nn.Conv2d(64,1,kernel_size=1) if not load_weights: mod = models.vgg16(pretrained = True) self._initialize_weights() for i in range(len(self.frontend.state_dict().items())): self.frontend.state_dict().items()[i][1].data[:] = mod.state_dict().items()[i][1].data[:]

在最后一行代码中显示'odict_items'对象不是下标!!如何处理?

g6228560 回答:'odict_items'对象不能下标该如何处理?

在 python3 中,items() 返回一个 dict_keys 对象,您应该尝试将其转换为列表:

list(self.frontend.state_dict().items())[i][1].data[:] = 列表(mod.state_dict().items())[i][1].data[:]

本文链接:https://www.f2er.com/2625430.html

大家都在问