🚀 鳥類分類器 EfficientNet - B2
このモデルは、画像分類を用いて鳥の種類を識別することができます。一般的に鳥の種類を見分けるのは難しいですが、この画像分類器を使えば、鳥の種類を簡単に特定することが可能です。
🚀 クイックスタート
このモデルは画像分類に使用できます。以下に、鳥の画像を使ってモデルを動作させる例を示します。
基本的な使用法
import torch
import urllib.request
from PIL import Image
from transformers import EfficientNetImageProcessor, EfficientNetForImageClassification
url = 'some url'
img = Image.open(urllib.request.urlretrieve(url)[0])
preprocessor = EfficientNetImageProcessor.from_pretrained("dennisjooo/Birds-Classifier-EfficientNetB2")
model = EfficientNetForImageClassification.from_pretrained("dennisjooo/Birds-Classifier-EfficientNetB2")
inputs = preprocessor(img, return_tensors="pt")
with torch.no_grad():
logits = model(**inputs).logits
predicted_label = logits.argmax(-1).item()
print(model.config.id2label[predicted_label])
高度な使用法
import torch
import urllib.request
from PIL import Image
from transformers import pipeline
url = 'some url'
img = Image.open(urllib.request.urlretrieve(url)[0])
pipe = pipeline("image-classification", model="dennisjooo/Birds-Classifier-EfficientNetB2")
result = pipe(img)[0]
print(result['label'])
✨ 主な機能
このモデルは、[google/efficientnet - b2](https://huggingface.co/google/efficientnet - b2) を [gpiosenka/100 - bird - species](https://www.kaggle.com/datasets/gpiosenka/100 - bird - species) データセットでファインチューニングしたものです。元のモデルは ImageNet - 1K で学習されており、鳥のような生物の識別にも役立つ機能を持っています。モデルはトレーニングセット、検証セット、テストセットのすべてで良好な性能を示しました。
Property |
Details |
Model Type |
ファインチューニングされたEfficientNet - B2 |
Training Data |
[gpiosenka/100 - bird - species](https://www.kaggle.com/datasets/gpiosenka/100 - bird - species) データセット(2023年9月24日取得) |
モデルの精度は以下の通りです:
- トレーニング: 0.999480
- 検証: 0.985904
- テスト: 0.991238
📚 ドキュメント
データ
データセットは Kaggle の [gpiosenka/100 - bird - species](https://www.kaggle.com/datasets/gpiosenka/100 - bird - species) から取得されました。このデータセットには525種類の鳥が含まれており、トレーニング画像が84,635枚、検証画像とテスト画像がそれぞれ2,625枚あります。すべての画像は224×224のRGB画像です。トレーニングには、著者が提供した分割を使用しました。詳細については、[著者のKaggleページ](https://www.kaggle.com/datasets/gpiosenka/100 - bird - species) を参照してください。
トレーニング手順
トレーニングは Kaggle の無料 P100 GPU 上で PyTorch を使用して行われました。また、Lightning と Torchmetrics ライブラリも使用されています。
前処理
各画像は、元の著者の [config](https://huggingface.co/google/efficientnet - b2/blob/main/preprocessor_config.json) に従って前処理されます。トレーニングセットは以下の方法で拡張されます:
- 50%の確率で10度のランダム回転
- 50%の確率でランダム水平反転
トレーニングハイパーパラメータ
トレーニングに使用されたハイパーパラメータは以下の通りです:
- トレーニング方式: fp32
- 損失関数: 交差エントロピー
- オプティマイザ: デフォルトのベータ値 (0.99, 0.999) を持つAdam
- 学習率: 1e - 3
- 学習率スケジューラ: 検証損失を監視し、忍耐力2、減衰率0.1の Reduce on plateau
- バッチサイズ: 64
- 早期停止: 検証精度を監視し、忍耐力10
結果
以下の画像は、トレーニングセットと検証セットでのトレーニング結果です:

📄 ライセンス
このモデルは Apache - 2.0 ライセンスの下で提供されています。