ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

timm 如何用 list_models 查询有哪些模型带预训练权重并查看其输入尺寸与归一化配置?

timm 如何用 list_models 查询有哪些模型带预训练权重并查看其输入尺寸与归一化配置? timm 如何用 list_models 查询有哪些模型带预训练权重并查看其输入尺寸与归一化配置【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models在 timmpytorch-image-models中挑选模型时常见的需求是先知道哪些模型带有可直接加载的预训练权重再确认该模型期望的输入尺寸input_size和归一化参数mean/std以便把预处理和推理代码配对正确。本文的操作路径来自仓库自带的 Quickstart用timm.list_models(pretrainedTrue)筛选带预训练权重的模型再用create_model加载后的model.pretrained_cfg与timm.data.resolve_data_config查看输入尺寸与归一化配置。准备条件安装 timmQuickstart 给出的安装命令pip install timm以下示例均可在 Python 解释器或脚本中直接执行。第一步用 list_models 筛选带预训练权重的模型timm.list_models(pretrainedTrue)只会返回有可用预训练权重的模型名结果按字母序自然排序排列 import timm from pprint import pprint model_names timm.list_models(pretrainedTrue) pprint(model_names)文档示例节选[ adv_inception_v3, cspdarknet53, cspresnext50, densenet121, densenet161, densenet169, densenet201, densenetblur121d, dla34, dla46_c, ]按模型名做通配符筛选支持 fnmatch 风格的*通配 model_names timm.list_models(*resne*t*) pprint(model_names)文档示例节选[ cspresnet50, cspresnet50d, cspresnet50w, cspresnext50, ... ]筛选与命名行为上实现 的文档串说明了几个关键点filter是 fnmatch 通配符过滤exclude_filters用于在包含后再排除一部分module可把结果限制到某个子模块文档给出的示例值是vision_transformerpretrainedTrue时返回名默认包含预训练 tag即model.tag形式由include_tags参数控制列表会自动剔除已弃用deprecated的模型名。list_models(*resne*t*)不带pretrainedTrue时返回的是匹配该模式的全部模型无论是否有预训练权重需要加pretrainedTrue才能限定为有预训练权重的子集。第二步查看模型的输入尺寸与归一化配置选定模型名后用create_model加载再读model.pretrained_cfg import timm model timm.create_model(mobilenetv3_large_100, pretrainedTrue) model.pretrained_cfg文档示例输出url为预训练权重下载地址此处省略{url: …预训练权重下载地址文档示例省略, num_classes: 1000, input_size: (3, 224, 224), pool_size: (7, 7), crop_pct: 0.875, interpolation: bicubic, mean: (0.485, 0.456, 0.406), std: (0.229, 0.224, 0.225), first_conv: conv_stem, classifier: classifier, architecture: mobilenetv3_large_100}其中与预处理直接相关的字段input_size模型期望的输入张量形状通道数 × 高 × 宽mean/std归一化使用的均值与标准差interpolation、crop_pctresize 插值方式与裁剪比例供构建 transform 使用。pretrained_cfg中混有first_conv、classifier等模型结构信息。要只取数据相关配置用timm.data.resolve_data_config解析其实现见 timm/data/config.py timm.data.resolve_data_config(model.pretrained_cfg)文档示例输出{input_size: (3, 224, 224), interpolation: bicubic, mean: (0.485, 0.456, 0.406), std: (0.229, 0.224, 0.225), crop_pct: 0.875}返回的键即该预训练权重训练时实际使用的输入尺寸、插值、归一化均值/标准差与裁剪比例。文档提示预训练模型对输入变换敏感用错 transform 模型将无法正确识别图像因此应以resolve_data_config解析出的配置为准而不是套用通用默认值。第三步用解析出的配置生成 transform可选如果下一步是写推理代码把数据配置直接传给timm.data.create_transform生成该模型对应的 transform data_cfg timm.data.resolve_data_config(model.pretrained_cfg) transform timm.data.create_transform(**data_cfg) transform文档示例输出Compose( Resize(size256, interpolationbicubic, max_sizeNone, antialiasNone) CenterCrop(size(224, 224)) ToTensor() Normalize(meantensor([0.4850, 0.4560, 0.4060]), stdtensor([0.2290, 0.2240, 0.2250])) )对比timm.data.create_transform((3, 224, 224))这种只传input_size的通用 transform两者可能恰好相同也可能不同例如插值方式Quickstart 明确建议用数据配置方式构建 transform。结果判断list_models(pretrainedTrue)返回非空列表且列表中的每个名字都表示该模型有可用预训练权重若某个架构查不到可用list_models(该架构名*)不带pretrainedTrue确认该架构是否存在、只是没有预训练权重。model.pretrained_cfg与resolve_data_config的输出中都应能看到input_size、mean、std字段这些值随模型不同而不同上面的数值只是mobilenetv3_large_100的文档示例不是所有模型的固定预期。transform 构建成功时打印结果会包含Resize、CenterCrop、ToTensor、Normalize等层文档示例且Normalize的 mean/std 与数据配置一致。限制与说明list_models(pretrainedTrue)的返回列表名默认带预训练 tag若脚本里要用不带 tag 的架构名注意按 实现文档串 中include_tags的说明处理。加载的模型默认处于 train 模式做推理前需调用.eval()Quickstart 的 Tip。各模型的预训练权重验证结果汇总见 Model Summaries 中指向的results目录。更完整的接口文档可参考 reference/modelstimm.create_model与timm.list_models的 autodoc 页。【免费下载链接】pytorch-image-modelsThe largest collection of PyTorch image encoders / backbones. Including train, eval, inference, export scripts, and pretrained weights -- ResNet, ResNeXT, EfficientNet, NFNet, Vision Transformer (ViT), MobileNetV4, MobileNet-V3 V2, RegNet, DPN, CSPNet, Swin Transformer, MaxViT, CoAtNet, ConvNeXt, and more项目地址: https://gitcode.com/GitHub_Trending/py/pytorch-image-models创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表