DeiT

DeiT(Data-efficient image Transformer)は、追加の事前学習データを使わずImageNet-1kだけで学習した標準的なVision Transformer分類器です。LibreYOLOはtiny、small、baseのpatch-16サイズを固定済みの推論専用モデルとして提供します。

タスク
classify
サイズ
t, s, b at 224 px
インストール
pip install libreyolo
サポートティア
ミュージアム、v以降。凍結された展示です。バグ修正のみ行います。
アップストリーム
Meta ResearchのDeiT、Apache-2.0。論文ソース
ライセンス
コード:Apache-2.0、重み:Apache-2.0。商用利用

インストール

DeiTには基本パッケージ以外の追加パッケージは必要ありません。

bash
pip install libreyolo

推論

このファミリーは推論専用です。train()NotImplementedErrorを発生させるため、このページに 「学習」セクションはありません。推論、検証、エクスポートにはすべて対応します。重みは初回使用時に Hugging Faceからダウンロードされ、ローカルにキャッシュされます。ファイル名の-cls接尾辞は 必須で、分類タスクを選択します。

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDeiTb-cls.pt")result = model(SAMPLE_IMAGE) print(result.probs.top1, result.probs.top1conf)print(result.probs.top5)
CLI
libreyolo predict model=LibreDeiTb-cls.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg

返されるResultsオブジェクトにはboxesではなくprobsテンソルが入ります。top1top5は 1,000個のImageNet-1kクラスのインデックスで、top1confは最上位の推論結果に対するsoftmax スコアです。各サイズの入力解像度は位置埋め込みベクトルによって固定されています。前処理はその 解像度へリサイズして中央クロップし、異なるimgszを渡すと暗黙的にリサンプリングせず例外を 発生させます。入力ソース、ストリーミング、結果の処理については推論を参照してください。

検証

val()は、一般的なtrain/<class>/val/<class>/のフォルダー構造で配置された データセットに対して測定したtop-1精度とtop-5精度の辞書を返します。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeiTb-cls.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/accuracy_top1"])print(metrics["metrics/accuracy_top5"])
CLI
libreyolo val model=LibreDeiTb-cls.pt data=my-dataset.yaml

エクスポート

タスクONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
classifyclassify to ONNX:対応classify to TorchScript:対応classify to ExecuTorch:対応classify to TensorRT:対応classify to OpenVINO:対応classify to Paddle:非対応classify to MNN:非対応classify to RKNN:非対応classify to ncnn:対応classify to TFLite:非対応classify to CoreML:非対応classify to Core AI:非対応

エクスポートした成果物はファイル接尾辞に基づいてLibreYOLO()から再読み込みされます。そのため、 .onnxまたは.engineファイルはチェックポイントと同様に動作し、同じResultsを返します。 LibreYOLOをインストールせずにランタイムからグラフを直接実行する方法にも対応しますが、その場合は 前処理と後処理を自分で実装します。

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreDeiTb-cls.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreDeiTb-cls.pt format=onnxlibreyolo export model=LibreDeiTb-cls.pt format=tensorrt half=True
エクスポートしたファイルを使う
from libreyolo import LibreYOLO, SAMPLE_IMAGE # ファクトリがファイル接尾辞で振り分けるため、エクスポートした成果物も# 通常のチェックポイントと同様に読み込まれ、同じResultsオブジェクトを返すmodel = LibreYOLO("LibreDeiTb-cls.onnx")result = model(SAMPLE_IMAGE) print(result.probs.top1)

チェックポイント

このファミリーで公開されているすべての重みファイルです。

ファイル入力(px)重みのライセンス
classify
LibreDeiTt-cls.pt224apache-2.0
LibreDeiTs-cls.pt224apache-2.0
LibreDeiTb-cls.pt224apache-2.0

上記のすべてのファイルは現在LibreYOLO orgにあり、初回使用時にダウンロードされます。

ライセンス

ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。

これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。

原著作物
DeiT, Meta Research
アップストリームのライセンス
Apache-2.0
アップストリームのソース
github.com/facebookresearch/deit
LibreYOLOのコード
MIT
重み
Apache-2.0、huggingface.co/LibreYOLOで再公開
解釈
Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. LibreYOLO ships the plain tiny, small and base patch-16 classifiers at fixed 224px only; the distillation-token, CaiT, DeiT III and 384px variants from the same repository are out of scope.

引用

@InProceedings{pmlr-v139-touvron21a,
  title =     {Training data-efficient image transformers & distillation through attention},
  author =    {Touvron, Hugo and Cord, Matthieu and Douze, Matthijs and Massa, Francisco and Sablayrolles, Alexandre and Jegou, Herve},
  booktitle = {International Conference on Machine Learning},
  pages =     {10347--10357},
  year =      {2021},
  volume =    {139},
  month =     {July}
}

著者によるgithub.com/facebookresearch/deit#-model-zooの引用ブロックからコピーしています。

LibreYOLO v1.5.0で検証済みです。このページのサポート表、チェックポイント、ベンチマーク値は手作業で記述したものではなく、リリース済みライブラリと公開済みの重みから生成されています。