pytorch使用cnn_finetune调用预训练模型

1:首先安装cnn_finetune
pip install cnn_finetune
2: 创建一个用ImageNet训练的resnet18模型,并使用它的权重用于10分类
model = make_model(‘resnet18’, num_classes=10, pretrained=True)
3:创建一个模型,并设置Dropout
model = make_model(‘nasnetalarge’, num_classes=10, pretrained=True, dropout_p=0.5)
3:将模型全局最大池化改为全局平均池化
model = make_model(‘inceptionresnetv2’, num_classes=10, pretrained=True, pool=nn.AdaptiveMaxPool2d(1))
4:VGG和AlexNet模型因为使用全连接层的原因,所以需要固定输入大小,例如:
model = make_model(‘vgg16’, num_classes=10, pretrained=True, input_size=(256, 256))
5:创建一个VGG16的模型,输入图片大小为256x256,并使用自定义的分类器:
import torch.nn as nn

def make_classifier(in_features, num_classes):
return nn.Sequential(
nn.Linear(in_features, 4096),
nn.ReLU(inplace=True),
nn.Linear(4096, num_classes),
)

model = make_model(‘vgg16’, num_classes=10, pretrained=True, input_size=(256, 256), classifier_factory=make_classifier)
6:显示模型在ImageNet上进行训练时的预处理:
model = make_model(‘resnext101_64x4d’, num_classes=10, pretrained=True)
print(model.original_model_info)
print(model.original_model_info.mean)
[0.485, 0.456, 0.406]

发布了36 篇原创文章 · 获赞 1 · 访问量 6384

猜你喜欢

转载自blog.csdn.net/qq_34291583/article/details/103276081
今日推荐