项目介绍:resnetrs152.tf_in1k
项目背景
resnetrs152.tf_in1k是一个用于图像分类的深度学习模型,它是ResNetRS-B系列模型中的一员。该模型利用深度残差网络(ResNet)的结构,通过在ImageNet-1k数据集上进行训练,以提升图像识别的准确率。该模型使用的是TensorFlow框架,并由相关论文的作者在ImageNet-1k数据集上进行训练。开发者可以在Github官方仓库中获取到该模型的源代码。
模型详细信息
模型类型
- 图像分类/特征骨干网络
模型参数
- 参数数量:86.6百万
- 计算量(GMACs):15.6
- 活动单元(Activations):30.8百万
- 训练时图像尺寸:256x256
- 测试时图像尺寸:320x320
相关论文
- Revisiting ResNets: Improved Training and Scaling Strategies: 查看论文
- Deep Residual Learning for Image Recognition: 查看论文
模型特点
resnetrs152.tf_in1k模型具有以下技术特点:
- 使用ReLU激活函数
- 单层7x7卷积与池化组合
- 采用1x1卷积作为快捷降采样
模型使用方法
图像分类
使用resnetrs152.tf_in1k模型进行图像分类的基础步骤如下:
from urllib.request import urlopen
from PIL import Image
import timm
img = Image.open(urlopen('图像网址'))
model = timm.create_model('resnetrs152.tf_in1k', pretrained=True)
model = model.eval()
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))
top5_probabilities, top5_class_indices = torch.topk(output.softmax(dim=1) * 100, k=5)
特征图提取
模型还可以用于提取图像的特征图:
model = timm.create_model('resnetrs152.tf_in1k', pretrained=True, features_only=True)
output = model(transforms(img).unsqueeze(0))
for o in output:
print(o.shape)
图像嵌入
此外,resnetrs152.tf_in1k模型可用于生成图像的嵌入向量:
model = timm.create_model('resnetrs152.tf_in1k', pretrained=True, num_classes=0)
output = model.forward_features(transforms(img).unsqueeze(0))
模型比较
通过timm模型结果页面,可以探索resnetrs152.tf_in1k模型在数据集与运行时的一些性能指标和细节。以下是其部分与其他模型的比较:
模型名称 | 图片尺寸 | Top-1准确率 | Top-5准确率 | 参数数量 | GMACs | 活动单元 | 每秒图像数 |
---|---|---|---|---|---|---|---|
resnetrs152.tf_in1k | 320 | 83.72 | 96.61 | 86.6 | 24.3 | 48.1 | 617 |
resnetrs152.tf_in1k | 256 | 82.86 | 96.28 | 86.6 | 15.6 | 30.8 | 951 |
通过这些数据对比可以发现,resnetrs152.tf_in1k在准度和效率之间找到一个平衡点,适合用于多种图像分类任务。
综上所述,resnetrs152.tf_in1k模型不仅具有强大的图像分类能力,还支持特征提取和生成图像嵌入,适合各种计算机视觉应用场景。