Fine-tune pretrained Convolutional Neural Networks with PyTorch.

@(深度学习)

Features

* Gives access to the most popular CNN architectures pretrained on ImageNet.
* Automatically replaces classifier on top of the network, which allows you
to train a network with a dataset that has a different number of classes.
* Allows you to use images with any resolution (and not only the resolution
that was used for training the original model on ImageNet).
* Allows adding a Dropout layer or a custom pooling layer.
Supported architectures and models

From torchvision package:

* ResNet (resnet18, resnet34, resnet50, resnet101, resnet152)
* DenseNet (densenet121, densenet169, densenet201, densenet161)
* Inception v3 (inception_v3)
* VGG (vgg11, vgg11_bn, vgg13, vgg13_bn, vgg16, vgg16_bn, vgg19, vgg19_bn)
* SqueezeNet (squeezenet1_0, squeezenet1_1)
* AlexNet (alexnet)
From Pretrained models for PyTorch package:

* ResNeXt (resnext101_32x4d, resnext101_64x4d)
* NASNet-A Large (nasnetalarge)
* NASNet-A Mobile (nasnetamobile)
* Inception-ResNet v2 (inceptionresnetv2)
* Dual Path Networks (dpn68, dpn68b, dpn92, dpn98, dpn131, dpn107)
* Inception v4 (inception_v4)
* Xception (xception)
* Squeeze-and-Excitation Networks (senet154, se_resnet50, se_resnet101,
se_resnet152, se_resnext50_32x4d, se_resnext101_32x4d)
Requirements

* Python 3.5+
* PyTorch 0.3+
Installation
pip install cnn_finetune
Example usage:

Make a model with ImageNet weights for 10 classes
from cnn_finetune import make_model model = make_model('resnet18', num_classes=
10, pretrained=True)
model = make_model(‘resnet18’, num_classes=10, pretrained=True)
model = make_model('nasnetalarge', num_classes=10, pretrained=True, dropout_p=
0.5)
Make a model with Global Max Pooling instead of Global Average Pooling
import torch.nn as nn model = make_model('inceptionresnetv2', num_classes=10,
pretrained=True, pool=nn.AdaptiveMaxPool2d(1))
Make a VGG16 model that takes images of size 256x256 pixels

VGG and AlexNet models use fully-connected layers, so you have to additionally
pass the input size of images when constructing a new model. This information
is needed to determine the input size of fully-connected layers.
model = make_model('vgg16', num_classes=10, pretrained=True, input_size=(256,
256))
Make a VGG16 model that takes images of size 256x256 pixels and uses a custom
classifier
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)
Show preprocessing that was used to train the original model on ImageNet
>> model = make_model('resnext101_64x4d', num_classes=10, pretrained=True) >>
print(model.original_model_info) ModelInfo(input_space='RGB', input_size=[3, 224
,224], input_range=[0, 1], mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225
]) >> print(model.original_model_info.mean) [0.485, 0.456, 0.406]

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信