HuggingFace镜像/regnety_032.ra_in1k
模型介绍文件和版本分析
下载使用量0

regnety_032.ra_in1k 的模型卡

RegNetY-3.2GF 图像分类模型。由 Ross Wightman 在 timm 中对 ImageNet-1k 进行训练。

timm RegNet 实现包括许多其他实现所不具备的增强功能,其中包括

  • 随机深度
  • 梯度检查点
  • 分层 LR 衰减
  • 可配置的输出跨度(扩张)
  • 可配置的激活和规范层
  • RegNetV 变体中使用的预激活瓶颈块选项
  • 只有已知的 RegNetZ 模型定义带有预训练权重

模型细节

  • 模型类型: 图像分类/特征骨架
  • 模型统计:
    • 参数 (M):19.4
    • GMACs: 3.2
    • 激活(M):11.3
    • 图像大小:训练 = 224 x 224,测试 = 288 x 288
  • 论文:
    • 设计网络设计空间:https://arxiv.org/abs/2003.13678
  • 数据集:** ImageNet-1k
  • 原文:** https://modelers.cn/datasets/YunnanAICC/pytorch-image-models

模型使用

图像分类

import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'
import torch
import torch_npu
import argparse
from openmind import pipeline, is_torch_npu_available
from PIL import Image
import requests
import timm

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default=None,
    )
    args = parser.parse_args()
    return args



def main():
    current_path = os.getcwd()
    print("Current path:",current_path)

    args = parse_args()
    model_path = args.model_name_or_path
    
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"
    
    url = "http://images.cocodataset.org/val2017/000000039769.jpg"
    img = Image.open(requests.get(url, stream=True).raw)
    
    # model = timm.create_model(model_path, pretrained=True).to(device)
    print("model_path:", model_path)
    model = timm.create_model('regnety_032.ra_in1k', pretrained=True).to(device)
    model = model.eval()

    # get model specific transforms (normalization, resize)
    data_config = timm.data.resolve_model_data_config(model)
    transforms = timm.data.create_transform(**data_config, is_training=False)

    output = model(transforms(img).unsqueeze(0).to(device))  # unsqueeze single image into batch of 1
    top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
    print(top5_class_indices)

if __name__=="__main__":
    main()

提取图特征

import torch
import torch_npu
import argparse
from openmind import pipeline, is_torch_npu_available
from PIL import Image
import requests
import timm

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default=None,
    )
    args = parser.parse_args()
    return args



def main():
    args = parse_args()
    model_path = args.model_name_or_path
    
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"
    
    url = "http://images.cocodataset.org/val2017/000000039769.jpg"
    img = Image.open(requests.get(url, stream=True).raw)
    
    model = timm.create_model(model_path, pretrained=True).to(device)
    model = model.eval()

    # get model specific transforms (normalization, resize)
    data_config = timm.data.resolve_model_data_config(model)
    transforms = timm.data.create_transform(**data_config, is_training=False)

    output = model(transforms(img).unsqueeze(0).to(device))  # unsqueeze single image into batch of 1
    for o in output:
        # print shape of each feature map in output
        # e.g. for swin_base_patch4_window7_224 (NHWC output)
        #  torch.Size([1, 56, 56, 128])
        #  torch.Size([1, 28, 28, 256])
        #  torch.Size([1, 14, 14, 512])
        #  torch.Size([1, 7, 7, 1024])
        # e.g. for swinv2_cr_small_ns_224 (NCHW output)
        #  torch.Size([1, 96, 56, 56]) 
        #  torch.Size([1, 192, 28, 28])
        #  torch.Size([1, 384, 14, 14])
        #  torch.Size([1, 768, 7, 7])
        print(o.shape)

if __name__=="__main__":
    main()

图像嵌入

import torch
import torch_npu
import argparse
from openmind import pipeline, is_torch_npu_available
from PIL import Image
import requests
import timm

def parse_args():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        "--model_name_or_path",
        type=str,
        help="Path to model",
        default=None,
    )
    args = parser.parse_args()
    return args



def main():
    args = parse_args()
    model_path = args.model_name_or_path
    
    if is_torch_npu_available():
        device = "npu:0"
    else:
        device = "cpu"
    
    url = "http://images.cocodataset.org/val2017/000000039769.jpg"
    img = Image.open(requests.get(url, stream=True).raw)
    
    model = timm.create_model(model_path, pretrained=True).to(device)
    model = model.eval()

    # get model specific transforms (normalization, resize)
    data_config = timm.data.resolve_model_data_config(model)
    transforms = timm.data.create_transform(**data_config, is_training=False)

    output = model.forward_features(transforms(img).unsqueeze(0).to(device))
    # output is unpooled, a (1, 2240, 7, 7) shaped tensor
    

    output = model.forward_head(output, pre_logits=True)
    # output is a (1, num_features) shaped tensor

模型对比

在 timm 的 模型结果 中探索此模型的数据集和运行时指标。

对于以下对比摘要,标记为 ra_in1k、ra3_in1k、ch_in1k、sw_* 和 lion_* 的权重是在 timm 中训练的。

模型图像尺寸top1top5参数数量gmacsmacts
regnety_1280.swag_ft_in1k38488.22898.684644.81374.99210.2
regnety_320.swag_ft_in1k38486.8498.364145.0595.088.87
regnety_160.swag_ft_in1k38486.02498.0583.5946.8767.67
regnety_160.sw_in12k_ft_in1k28886.00497.8383.5926.3738.07
regnety_1280.swag_lc_in1k22485.99697.848644.81127.6671.58
regnety_160.lion_in12k_ft_in1k28885.98297.84483.5926.3738.07
regnety_160.sw_in12k_ft_in1k22485.57497.66683.5915.9623.04
regnety_160.lion_in12k_ft_in1k22485.56497.67483.5915.9623.04
regnety_120.sw_in12k_ft_in1k28885.39897.58451.8220.0635.34
regnety_2560.seer_ft_in1k38485.1597.4361282.6747.83296.49
regnetz_e8.ra3_in1k32085.03697.26857.715.4663.94
regnety_120.sw_in12k_ft_in1k22484.97697.41651.8212.1421.38
regnety_320.swag_lc_in1k22484.5697.446145.0532.3430.26
regnetz_040_h.ra3_in1k32084.49697.00428.946.4337.94
regnetz_e8.ra3_in1k25684.43697.0257.79.9140.94
regnety_1280.seer_ft_in1k38484.43297.092644.81374.99210.2
regnetz_040.ra3_in1k32084.24696.9327.126.3537.78
regnetz_d8.ra3_in1k32084.05496.99223.376.1937.08
regnetz_d8_evos.ch_in1k32084.03896.99223.467.0338.92
regnetz_d32.ra3_in1k32084.02296.86627.589.3337.08
regnety_080.ra3_in1k28883.93296.88839.1813.2229.69
regnety_640.seer_ft_in1k38483.91296.924281.38188.47124.83
regnety_160.swag_lc_in1k22483.77897.28683.5915.9623.04
regnetz_040_h.ra3_in1k25683.77696.70428.944.1224.29
regnetv_064.ra3_in1k28883.7296.7530.5810.5527.11
regnety_064.ra3_in1k28883.71896.72430.5810.5627.11
regnety_160.deit_in1k28883.6996.77883.5926.3738.07
regnetz_040.ra3_in1k25683.6296.70427.124.0624.19
regnetz_d8.ra3_in1k25683.43896.77623.373.9723.74
regnetz_d32.ra3_in1k25683.42496.63227.585.9823.74
regnetz_d8_evos.ch_in1k25683.3696.63623.464.524.92
regnety_320.seer_ft_in1k38483.3596.71145.0595.088.87
regnetv_040.ra3_in1k28883.20496.6620.646.620.3
regnety_320.tv2_in1k22483.16296.42145.0532.3430.26
regnety_080.ra3_in1k22483.1696.48639.188.017.97
regnetv_064.ra3_in1k22483.10896.45830.586.3916.41
regnety_040.ra3_in1k28883.04496.520.656.6120.3
regnety_064.ra3_in1k22483.0296.29230.586.3916.41
regnety_160.deit_in1k22482.97496.50283.5915.9623.04
regnetx_320.tv2_in1k22482.81696.208107.8131.8136.3
regnety_032.ra_in1k28882.74296.41819.445.2918.61
regnety_160.tv2_in1k22482.63496.2283.5915.9623.04
regnetz_c16_evos.ch_in1k32082.63496.47213.493.8625.88
regnety_080_tv.tv2_in1k22482.59296.24639.388.5119.73
regnetx_160.tv2_in1k22482.56496.05254.2815.9925.52
regnetz_c16.ra3_in1k32082.5196.35813.463.9225.88
regnetv_040.ra3_in1k22482.4496.19820.644.012.29
regnety_040.ra3_in1k22482.30496.07820.654.012.29
regnetz_c16.ra3_in1k25682.1696.04813.462.5116.57
regnetz_c16_evos.ch_in1k25681.93696.1513.492.4816.57
regnety_032.ra_in1k22481.92495.98819.443.211.26
regnety_032.tv2_in1k22481.7795.84219.443.211.26
regnetx_080.tv2_in1k22481.55295.54439.578.0214.06
regnetx_032.tv2_in1k22480.92495.2715.33.211.37
regnety_320.pycls_in1k22480.80495.246145.0532.3430.26
regnetz_b16.ra3_in1k28880.71295.479.722.3916.43
regnety_016.tv2_in1k22480.6695.33411.21.638.04
regnety_120.pycls_in1k22480.3795.1251.8212.1421.38
regnety_160.pycls_in1k22480.28894.96483.5915.9623.04
regnetx_320.pycls_in1k22480.24695.01107.8131.8136.3
regnety_080.pycls_in1k22479.88294.83439.188.017.97
regnetz_b16.ra3_in1k22479.87294.9749.721.459.95
regnetx_160.pycls_in1k22479.86294.82854.2815.9925.52
regnety_064.pycls_in1k22479.71694.77230.586.3916.41
regnetx_120.pycls_in1k22479.59294.73846.1112.1321.37
regnetx_016.tv2_in1k22479.4494.7729.191.627.93
regnety_040.pycls_in1k22479.2394.65420.654.012.29
regnetx_080.pycls_in1k22479.19894.5539.578.0214.06
regnetx_064.pycls_in1k22479.06494.45426.216.4916.37
regnety_032.pycls_in1k22478.88494.41219.443.211.26
regnety_008_tv.tv2_in1k22478.65494.3886.430.845.42
regnetx_040.pycls_in1k22478.48294.2422.123.9912.2
regnetx_032.pycls_in1k22478.17894.0815.33.211.37
regnety_016.pycls_in1k22477.86293.7311.21.638.04
regnetx_008.tv2_in1k22477.30293.6727.260.815.15
regnetx_016.pycls_in1k22476.90893.4189.191.627.93
regnety_008.pycls_in1k22476.29693.056.260.815.25
regnety_004.tv2_in1k22475.59292.7124.340.413.89
regnety_006.pycls_in1k22475.24492.5186.060.614.33
regnetx_008.pycls_in1k22475.04292.3427.260.815.15
regnetx_004_tv.tv2_in1k22474.5792.1845.50.423.17
regnety_004.pycls_in1k22474.01891.7644.340.413.89
regnetx_006.pycls_in1k22473.86291.676.20.613.98
regnetx_004.pycls_in1k22472.3890.8325.160.43.14
regnety_002.pycls_in1k22470.28289.5343.160.22.17
regnetx_002.pycls_in1k22468.75288.5562.680.22.16

引用

@InProceedings{Radosavovic2020,
  title = {Designing Network Design Spaces},
  author = {Ilija Radosavovic and Raj Prateek Kosaraju and Ross Girshick and Kaiming He and Piotr Doll{'a}r},
  booktitle = {CVPR},
  year = {2020}
}
@misc{rw2019timm,
  author = {Ross Wightman},
  title = {PyTorch Image Models},
  year = {2019},
  publisher = {GitHub},
  journal = {GitHub repository},
  doi = {10.5281/zenodo.4414861},
  howpublished = {\url{https://modelers.cn/datasets/YunnanAICC/pytorch-image-models}}
}