数据集:
- 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-huge-224-hf")
model = HieraModel.from_pretrained("facebook/hiera-huge-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-huge-224-hf")
model = HieraBackbone.from_pretrained("facebook/hiera-huge-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}
}