Huggingface Transformers 入門 (29) - Vision Transformer
「Huggingface Transformers」がVisionタスクにも対応したので、「Vision Transformer」による画像分類を試してみます。
・Huggingface Transformers 4.6.0
前回
1. Vision Transformer
「Vision Transformer」(ViT)は、TransformerエンコーダでのImageNetによる画像分類の学習に成功した最初のモデルです。従来の畳み込みモデルと比較して、非常に優れた結果を達成したことで話題になりました。
2. Vision Transformerによる画像分類
「Google Colab」で「Vision Transformer」による画像分類を試してみます。
(1) Huggingface Transformersのインストール。
!pip install transformers==4.6.0
(2) モデルと特徴抽出器の準備。
import torch
from transformers import ViTForImageClassification, ViTFeatureExtractor
# モデルと特徴抽出器の準備
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')
feature_extractor = ViTFeatureExtractor.from_pretrained('google/vit-base-patch16-224')
(3) 画像を「Google Colab」にアップロード。
・cat.jpg
(4) 画像の読み込み。
from PIL import Image
# 画像の読み込み
image = Image.open('cat.jpg')
(5) 入力データの準備。
# 画像をテンソルに変換
inputs = feature_extractor(images=image, return_tensors='pt')
(6) 推論。
# 推論
outputs = model(**inputs)
logits = outputs.logits # 1000クラスのスコアの配列
predicted_class_idx = logits.argmax(-1).item() # スコアが最大のインデックス
print('class:', model.config.id2label[predicted_class_idx]) # インデックスをラベルに変換
class: Egyptian cat
次回
この記事が気に入ったらサポートをしてみませんか?