🚀 dinov2-base-finetuned-SkinDisease
このモデルは、facebook/dinov2-base をカスタムデータセットでファインチューニングしたバージョンです。評価セットでは以下の結果を達成しています。
🚀 クイックスタート
このモデルは、facebook/dinov2-base をカスタムデータセットでファインチューニングしたものです。評価セットでは以下の結果を達成しています。
✨ 主な機能
このモデルは、Vision Transformer (ViT) をベースにした画像分類モデルです。ViTは、大量の画像データを自己教師付き学習で事前学習したトランスフォーマーエンコーダモデル(BERTのような)です。画像は固定サイズのパッチのシーケンスとしてモデルに入力され、線形埋め込みが行われます。また、分類タスクに使用するために、シーケンスの先頭に [CLS] トークンが追加されます。シーケンスをトランスフォーマーエンコーダのレイヤーに入力する前に、絶対位置埋め込みも追加されます。
なお、このモデルにはファインチューニングされたヘッドは含まれていません。事前学習により、モデルは画像の内部表現を学習し、下流タスクに有用な特徴を抽出するために使用できます。例えば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を学習することができます。通常、[CLS] トークンの上に線形層を配置します。このトークンの最後の隠れ状態は、画像全体の表現と見なすことができます。
📦 インストール
このモデルを使用するには、必要なライブラリをインストールする必要があります。以下のコードを参考にしてください。
import torch
from transformers import AutoModelForImageClassification, AutoImageProcessor
💻 使用例
基本的な使用法
import torch
from transformers import AutoModelForImageClassification, AutoImageProcessor
repo_name = "Jayanth2002/dinov2-base-finetuned-SkinDisease"
image_processor = AutoImageProcessor.from_pretrained(repo_name)
model = AutoModelForImageClassification.from_pretrained(repo_name)
image_path = "/content/img_416.jpg"
image = Image.open(image_path)
encoding = image_processor(image.convert("RGB"), return_tensors="pt")
with torch.no_grad():
outputs = model(**encoding)
logits = outputs.logits
predicted_class_idx = logits.argmax(-1).item()
class_names = ['Basal Cell Carcinoma', 'Darier_s Disease', 'Epidermolysis Bullosa Pruriginosa', 'Hailey-Hailey Disease', 'Herpes Simplex', 'Impetigo', 'Larva Migrans', 'Leprosy Borderline', 'Leprosy Lepromatous', 'Leprosy Tuberculoid', 'Lichen Planus', 'Lupus Erythematosus Chronicus Discoides', 'Melanoma', 'Molluscum Contagiosum', 'Mycosis Fungoides', 'Neurofibromatosis', 'Papilomatosis Confluentes And Reticulate', 'Pediculosis Capitis', 'Pityriasis Rosea', 'Porokeratosis Actinic', 'Psoriasis', 'Tinea Corporis', 'Tinea Nigra', 'Tungiasis', 'actinic keratosis', 'dermatofibroma', 'nevus', 'pigmented benign keratosis', 'seborrheic keratosis', 'squamous cell carcinoma', 'vascular lesion']
predicted_class_name = class_names[predicted_class_idx]
print(predicted_class_name)
高度な使用法
高度な使用法については、基本的な使用法を参考に、データセットやハイパーパラメータを調整することで、より精度の高いモデルを構築することができます。
📚 ドキュメント
学習ハイパーパラメータ
学習時に使用されたハイパーパラメータは以下の通りです。
- 学習率: 5e-05
- 訓練バッチサイズ: 32
- 評価バッチサイズ: 32
- シード: 42
- 勾配累積ステップ: 4
- 総訓練バッチサイズ: 128
- オプティマイザ: Adam (betas=(0.9,0.999), epsilon=1e-08)
- 学習率スケジューラの種類: 線形
- 学習率スケジューラのウォームアップ率: 0.1
- エポック数: 10
学習結果
学習損失 |
エポック |
ステップ |
検証損失 |
正解率 |
0.9599 |
1.0 |
282 |
0.6866 |
0.7811 |
0.6176 |
2.0 |
565 |
0.4806 |
0.8399 |
0.4614 |
3.0 |
847 |
0.3092 |
0.8934 |
0.3976 |
4.0 |
1130 |
0.2620 |
0.9141 |
0.3606 |
5.0 |
1412 |
0.2514 |
0.9208 |
0.3075 |
6.0 |
1695 |
0.1968 |
0.9320 |
0.2152 |
7.0 |
1977 |
0.2004 |
0.9377 |
0.2194 |
8.0 |
2260 |
0.1627 |
0.9442 |
0.1706 |
9.0 |
2542 |
0.1449 |
0.9500 |
0.172 |
9.98 |
2820 |
0.1321 |
0.9557 |
フレームワークバージョン
- Transformers 4.33.2
- Pytorch 2.0.0
- Datasets 2.1.0
- Tokenizers 0.13.3
📄 ライセンス
このモデルは、Apache-2.0ライセンスの下で提供されています。
🔧 技術詳細
このモデルは、Vision Transformer (ViT) をベースにした画像分類モデルです。ViTは、大量の画像データを自己教師付き学習で事前学習したトランスフォーマーエンコーダモデル(BERTのような)です。画像は固定サイズのパッチのシーケンスとしてモデルに入力され、線形埋め込みが行われます。また、分類タスクに使用するために、シーケンスの先頭に [CLS] トークンが追加されます。シーケンスをトランスフォーマーエンコーダのレイヤーに入力する前に、絶対位置埋め込みも追加されます。
なお、このモデルにはファインチューニングされたヘッドは含まれていません。事前学習により、モデルは画像の内部表現を学習し、下流タスクに有用な特徴を抽出するために使用できます。例えば、ラベル付き画像のデータセットがある場合、事前学習されたエンコーダの上に線形層を配置して標準的な分類器を学習することができます。通常、[CLS] トークンの上に線形層を配置します。このトークンの最後の隠れ状態は、画像全体の表現と見なすことができます。
🔖 引用
@article{mohan2024enhancing,
title={Enhancing skin disease classification leveraging transformer-based deep learning architectures and explainable ai},
author={Mohan, Jayanth and Sivasubramanian, Arrun and Sowmya, V and Vinayakumar, Ravi},
journal={arXiv preprint arXiv:2407.14757},
year={2024}
}