仅本人记录学习使用
pytorch中的pre-train函数模型引用及修改(增减网络层,修改某层参数等)_whut_ldz的博客-优快云博客
修改经典网络有两个思路,一个是重写网络结构,比较麻烦,适用于对网络进行增删层数。
【CNN】搭建AlexNet网络——并处理自定义的数据集(猫狗分类)_猫狗分类数据集_fckey的博客-优快云博客
一个就是加载然后修改。
对Alexnet
alexnet=models.AlexNet()
alexnet.classifier[6]=nn.Linear(2048,2)
print(alexnet)
输出为
对resnet
也可以修改的复杂一点
pytorch调用库的resnet50网络时修改最后的fc层_mymodel.fc = nn.linear(inchannel, 13)_后知还就那个后觉的博客-优快云博客
model=models.resnet101(pretrained=True)
# 提取fc层中固定的参数
fc_features = model.fc.in_features
# 修改类别为9
model.fc = nn.Linear(fc_features, 9)
print(model)