🚀 Hiera Model (Tiny, IN1Kでファインチューニング済み)
Hieraは、高速で強力で、そして何よりも_シンプル_な_階層型_ビジョントランスフォーマーです。このモデルは論文Hiera: A Hierarchical Vision Transformer without the Bells-and-Whistlesで紹介され、幅広い画像およびビデオタスクにおいて最先端のモデルを上回り、しかも_はるかに高速_です。
🚀 クイックスタート
どのように動作するのか?

ViTのようなビジョントランスフォーマーは、ネットワーク全体で同じ空間解像度と特徴量の数を使用します。しかし、これは非効率的です。初期の層ではそれほど多くの特徴量を必要とせず、後期の層ではそれほど高い空間解像度を必要としません。以前の階層型モデルであるResNetは、この点を考慮して、最初は少ない特徴量を、最後は低い空間解像度を使用しています。
SwinやMViTなど、この階層的設計を採用したいくつかのドメイン固有のビジョントランスフォーマーが導入されています。しかし、ImageNet-1Kでの完全教師付き学習を使用して最先端の結果を追求する過程で、これらのモデルは、ViTに欠ける空間バイアスを補うために特殊なモジュールを追加することで、ますます複雑になっています。これらの変更は魅力的なFLOPカウントを持つ効果的なモデルを生み出しますが、実際には追加された複雑さにより、これらのモデルは全体的に_遅く_なっています。
私たちは、この多くの冗長部分が実際には_不要_であることを示しています。アーキテクチャの変更を通じて手動で空間基底を追加する代わりに、モデルにこれらのバイアスを_教える_ことを選択します。MAEを用いた学習により、既存のトランスフォーマーにおける_すべての_これらの巨大なモジュールを簡素化または削除し、その過程で_精度を向上_させることができます。その結果が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-base-plus-224-hf")
model = HieraModel.from_pretrained("facebook/hiera-base-plus-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-base-plus-224-hf")
model = HieraBackbone.from_pretrained("facebook/hiera-base-plus-224-hf", out_features=['stage1', 'stage2', 'stage3', 'stage4'])
inputs = image_processor(images=image, return_tensors="pt")
outputs = model(**inputs)
feature_maps = outputs.feature_maps
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 |