数据集:
- imagenet-1k
语言:
- 英文
库名称: transformers
许可证: cc-by-nc-4.0
Hiera模型(微型版,基于IN1K微调)
Hiera是一种层次化视觉Transformer模型,具有快速、强大且极其简洁的特点。该模型在论文《Hiera: 一个没有花哨设计的层次化视觉Transformer》中提出,在广泛图像与视频任务中超越当前最优技术的同时,实现了显著的速度提升。
工作原理

传统视觉Transformer(如ViT)在整个网络中保持相同的空间分辨率和特征数量。但这种方式效率低下:早期层不需要过多特征,而深层网络则不需要过高空间分辨率。ResNet等层次化模型通过初始减少特征数、后期降低分辨率来解决这个问题。
Swin和MViT等专业视觉Transformer采用了这种层次化设计。但为了在ImageNet-1K全监督训练中达到最优效果,这些模型通过添加特殊模块来弥补ViT缺乏的空间偏置,导致结构日趋复杂。虽然这些改进带来了理想的FLOPs数值,但实际运行效率反而降低。
我们发现这些复杂设计大多并非必要。通过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-tiny-224-hf")
model = HieraModel.from_pretrained("facebook/hiera-tiny-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-tiny-224-hf")
model = HieraBackbone.from_pretrained("facebook/hiera-tiny-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}
}