如何准确列出torchvision中的所有CNN分类模型?
TorchVision 中的 CNN 分类模型整理
一、核心模型类(可直接实例化)
- AlexNet(亚历克斯网络)
- ConvNeXt(卷积下一代网络)
- DenseNet(密集连接网络)
- EfficientNet(高效网络)
- GoogLeNet(谷歌网络)
- Inception3(InceptionV3 网络)
- MNASNet(移动端 NAS 搜索网络)
- MaxVit(混合视觉Transformer*注:结合CNN与Transformer架构)
- MobileNetV2(移动端轻量网络V2)
- MobileNetV3(移动端轻量网络V3)
- RegNet(正则化残差网络)
- ResNet(残差网络)
- ResNeXt(残差网络变体)
- ShuffleNetV2(轻量洗牌网络V2)
- SqueezeNet(轻量压缩网络)
- VGG(视觉几何组网络)
二、便捷构造函数(直接返回初始化/预训练模型)
AlexNet 系列
alexnet
ConvNeXt 系列
convnext_tinyconvnext_smallconvnext_baseconvnext_large
DenseNet 系列
densenet121densenet161densenet169densenet201
EfficientNet 系列
efficientnet_b0、efficientnet_b1、efficientnet_b2、efficientnet_b3、efficientnet_b4、efficientnet_b5、efficientnet_b6、efficientnet_b7efficientnet_v2_s、efficientnet_v2_m、efficientnet_v2_l
GoogLeNet 系列
googlenet
InceptionV3 系列
inception_v3
MNASNet 系列
mnasnet0_5、mnasnet0_75、mnasnet1_0、mnasnet1_3
MaxVit 系列
maxvit_t
MobileNet 系列
mobilenet_v2mobilenet_v3_small、mobilenet_v3_large
RegNet 系列
- RegNet-X:
regnet_x_400mf、regnet_x_800mf、regnet_x_1_6gf、regnet_x_3_2gf、regnet_x_8gf、regnet_x_16gf、regnet_x_32gf - RegNet-Y:
regnet_y_400mf、regnet_y_800mf、regnet_y_1_6gf、regnet_y_3_2gf、regnet_y_8gf、regnet_y_16gf、regnet_y_32gf、regnet_y_128gf
ResNet/ResNeXt/WideResNet 系列
- ResNet 基础:
resnet18、resnet34、resnet50、resnet101、resnet152 - ResNeXt:
resnext50_32x4d、resnext101_32x8d、resnext101_64x4d - WideResNet:
wide_resnet50_2、wide_resnet101_2
ShuffleNetV2 系列
shufflenet_v2_x0_5、shufflenet_v2_x1_0、shufflenet_v2_x1_5、shufflenet_v2_x2_0
SqueezeNet 系列
squeezenet1_0、squeezenet1_1
VGG 系列
- 基础版:
vgg11、vgg13、vgg16、vgg19 - 带批归一化版:
vgg11_bn、vgg13_bn、vgg16_bn、vgg19_bn
三、精准筛选模型的代码示例
方法1:基于类型与命名规则过滤
import torchvision import inspect # 筛选CNN分类模型类(排除Transformer、权重类、内部输出类) cnn_model_classes = [name for name, obj in inspect.getmembers(torchvision.models) if inspect.isclass(obj) and not name.endswith("Weights") and not name.endswith("Outputs") and not name.startswith("_") and name not in ["VisionTransformer", "SwinTransformer"]] print("CNN分类模型类列表:", cnn_model_classes)
方法2:使用官方list_models函数(更可靠)
import torchvision # 列出所有图像分类模型 classification_models = torchvision.models.list_models(module=torchvision.models) # 可选:进一步过滤纯CNN模型(排除Transformer类) cnn_models = [m for m in classification_models if m not in ["vit_b_16", "vit_b_32", "vit_l_16", "vit_l_32", "vit_h_14", "swin_t", "swin_s", "swin_b", "swin_v2_t", "swin_v2_s", "swin_v2_b"]] print("CNN分类模型列表:", cnn_models)
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

