CVPR 2023のコード「ボトル内の言語:言語モデルガイド付きコンセプトボトルネックのための解釈可能な画像分類」
Python 3.9.13を使用して実験を実行します。以下を使用して、必要なパッケージをインストールできます。
conda create --name labo python=3.9.13
conda activate labo
pip install -r requirements.txt
サブモジュラー最適化を実行するには、アプリコットのソースコードを変更する必要があります。こちらの詳細をご覧ください。
cfg/線形プローブ( cfg/linear_probe )やLABO( cfg/asso_opt )を含むすべての実験の構成ファイルを保存します。構成ファイルを変更して、システム引数を変更できます。
datasets/保存images 、 splits 、 conceptsを含むデータセット固有のデータ。詳細については、 datasets/DATASET.mdを確認してください。
注:各データセットの画像は、このレポでは提供されていません。それらをダウンロードして、対応するフォルダーに保存する必要があります: datasets/{dataset name}/images/ 。すべてのデータセットのダウンロードに関する手順については、 datasets/DATASET.md確認してください。
exp/は、実験のワークディレクトリです。このフォルダーには、構成ファイルとモデルチェックポイントが保存されます。
models/保存モデル:
models/linear_prob/linear_prob.pymodels/asso_opt/asso_opt.pymodels/select_concept/select_algo.py output/ :パフォーマンスは、 output/に保存されている.txtファイルに保存されます。
その他のファイル:
data.pyとdata_lp.py 、それぞれLABOと線形プローブのデータボーダーです。main.pyすべての実験を実行するインターフェイスであり、 utils.pyにはプレアセスと特徴抽出機能が含まれています。linear probe.shは、線形プローブを実行するBASHファイルです。 labo_train.shとlabo_test.shは、laboを訓練およびテストするためのbashファイルです。 線形プローブのパフォーマンスを取得するには、実行するだけです。
sh linear_probe.sh {DATASET} {SHOTS} {CLIP SIZE}
たとえば、VIT-L/14画像エンコーダーを使用したフラワーデータセット1ショットの場合、コマンドは次のとおりです。
sh linear_probe.sh flower 1 ViT-L/14
コードは自動的に画像をエンコードし、DEVセットを使用してL2正規化でハイパーパラメーター検索を実行します。最良の検証とテストのパフォーマンスはoutput/linear_probe/{DATASET}.txtに保存されます。
LABOをトレーニングするには、次のコマンドを実行します。
sh labo_train.sh {SHOTS} {DATASET}
トレーニングログはwandbにアップロードされます。 wandbアカウントをローカルに設定する必要がある場合があります。最大エポックに到達した後、最高の検証精度と対応する構成ファイルを備えたチェックポイントexp/asso_opt/{DATASET}/{DATASET}_{SHOT}shot_fac/に保存されます。
テストパフォーマンスを取得するには、モデルチェックポイントとexp/asso_opt/{DATASET}/{DATASET}_{SHOT}shot_fac/に保存された対応する構成を使用します。
sh labo_test.sh {CONFIG_PATH} {CHECKPOINT_PATH}
テストの精度はoutput/asso_opt/{DATASET}.txtに印刷されます。
あなたがそれが役に立つと思うなら、私たちの論文を引用してください!
@inproceedings{yang2023language,
title={Language in a bottle: Language model guided concept bottlenecks for interpretable image classification},
author={Yang, Yue and Panagopoulou, Artemis and Zhou, Shenghao and Jin, Daniel and Callison-Burch, Chris and Yatskar, Mark},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={19187--19197},
year={2023}
}