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 확인하십시오.
참고 : 각 데이터 세트의 이미지는이 repo에서 제공되지 않습니다. 해당 폴더에 다운로드하고 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 및 linear probe의 데이터 로더입니다.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
코드는 이미지를 자동으로 인코딩하고 개발자 세트를 사용하여 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/ 및 run에 저장된 모델 체크 포인트 및 해당 구성을 사용하십시오.
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}
}