数据集:
- imagenet-1k
语言:
- 英文
库名称: transformers
许可证: cc-by-nc-4.0
Hiera模型(微型版,基于IN1K微调)
Hiera是一种层次化视觉Transformer模型,兼具快速性、强大功能与极简设计。该模型由论文《Hiera: 去芜存菁的层次化视觉Transformer》提出,在广泛图像视频任务中不仅显著超越现有技术水准,更具备突出的运算效率优势。
工作原理

传统视觉Transformer(如ViT)在全网络中使用统一空间分辨率和特征维度,这种设计存在效率缺陷:早期层无需过多特征维度,深层网络则不需要过高空间分辨率。ResNet等经典层次化模型通过动态调整特征维度与分辨率来解决这一问题。
当前领域专用视觉Transformer(如Swin或MViT)虽采用层次化设计,但为追求ImageNet-1K全监督训练下的最优性能,不断引入复杂模块以弥补ViT的空间归纳偏置缺陷,导致模型效率下降。
我们研究发现这些复杂设计多数实属冗余。通过MAE自监督训练策略,我们成功简化或移除了现有Transformer中的臃肿模块,在提升准确率的同时,打造出这个在多项图像视频识别任务中刷新性能纪录的极简架构——Hiera。
应用场景与限制
Hiera适用于图像分类、特征提取及掩码图像建模任务。本检查点专为特征提取场景优化。
使用方法
from transformers import AutoImageProcessor, HieraModel
import torch
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-small-224-hf")
model = HieraModel.from_pretrained("facebook/hiera-small-224-hf")
inputs = image_processor(images=image, return_tensors="pt")
outputs = model(**inputs)
如需获取不同网络阶段的特征图,可使用HieraBackbone
并设置out_features
参数:
from transformers import AutoImageProcessor, HieraBackbone
import torch
from PIL import Image
import requests
url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(url, stream=True).raw)
image_processor = AutoImageProcessor.from_pretrained("facebook/hiera-small-224-hf")
model = HieraBackbone.from_pretrained("facebook/hiera-small-224-hf", out_features=['stage1', 'stage2', 'stage3', 'stage4'])
inputs = image_processor(images=image, return_tensors="pt")
outputs = model(**inputs)
feature_maps = outputs.feature_maps
引用文献
若使用Hiera或相关代码,请引用:
@article{ryali2023hiera,
title={Hiera: 去芜存菁的层次化视觉Transformer},
author={Ryali, Chaitanya and Hu, Yuan-Ting and Bolya, Daniel and Wei, Chen and Fan, Haoqi and Huang, Po-Yao and Aggarwal, Vaibhav and Chowdhury, Arkabandhu and Poursaeed, Omid and Hoffman, Judy and Malik, Jitendra and Li, Yanghao and Feichtenhofer, Christoph},
journal={ICML},
year={2023}
}