为了简单起见,假设我正在加载的模型有4层(layer0,layer1,layer2,layer3)。如果我只希望模型针对诸如layer0和layer1进行预训练,但具有对layer2和layer3进行随机初始化的参数,那我该怎么做呢?
答案 0 :(得分:1)
您可以通过冻结不希望更改(预训练)的层并使其不冻结(它们将继续训练)来实现
model_ft = models.resnet50(pretrained=True)
ct = 0
for child in model_ft.children():
ct += 1
if ct < 7:
for param in child.parameters():
param.requires_grad = False
这将冻结Resnet50总共10层中的1-6层。