🚀 Hiera模型(Tiny,在IN1K上微调)
Hiera 是一种 分层 视觉变换器,它快速、强大,最重要的是 简单。该模型在论文 Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles 中被提出,在众多图像和视频任务中超越了现有技术水平,同时速度更快。
🚀 快速开始
预期用途和限制
Hiera可用于图像分类、特征提取或掩码图像建模。此特定检查点旨在用于 图像分类。
如何使用
import requests
import torch
from PIL import Image
from transformers import AutoImageProcessor, AutoModelForImageClassification
model_id = "facebook/hiera-base-224-in1k-hf"
device = "cuda" if torch.cuda.is_available() else "cpu"
image_processor = AutoImageProcessor.from_pretrained(model_id)
model = AutoModelForImageClassification.from_pretrained(model_id).to(device)
image_url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(image_url, stream=True).raw)
inputs = image_processor(images=image, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model(**inputs)
predicted_id = outputs.logits.argmax(dim=-1).item()
predicted_class = model.config.id2label[predicted_id]
✨ 主要特性
工作原理

像 ViT 这样的视觉变换器在整个网络中使用相同的空间分辨率和特征数量。但这是低效的:早期层不需要那么多特征,而后期层不需要那么高的空间分辨率。像 ResNet 这样的早期分层模型通过在开始时使用较少的特征和在结束时使用较低的空间分辨率来解决这个问题。
已经有几种采用这种分层设计的特定领域视觉变换器被提出,如 Swin 或 MViT。但在追求使用ImageNet - 1K上的全监督训练获得最先进结果的过程中,这些模型变得越来越复杂,因为它们添加了专门的模块来弥补ViT缺乏的空间偏差。虽然这些改变产生了具有吸引人的浮点运算次数(FLOP)的有效模型,但在底层,增加的复杂性使这些模型整体 变慢。
我们表明,很多这种复杂性实际上是 不必要的。我们没有通过架构更改手动添加空间基础,而是选择 教导 模型这些偏差。通过使用 MAE 进行训练,我们可以简化或移除现有变换器中的 所有 这些庞大模块,并在此过程中 提高准确性。结果就是Hiera,一种极其高效和简单的架构,在多个图像和视频识别任务中超越了现有技术水平。
📚 详细文档
BibTeX引用和引用信息
如果您在工作中使用Hiera或此代码,请引用:
@article{ryali2023hiera,
title={Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistles},
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}
}
📄 许可证
本项目采用CC - BY - NC - 4.0许可证。
📦 模型信息
属性 |
详情 |
数据集 |
imagenet - 1k |
语言 |
en |
库名称 |
transformers |
许可证 |
cc - by - nc - 4.0 |
任务类型 |
图像分类 |