رمز لغة 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/ : سيتم حفظ الأداء في ملفات .txt المخزنة في output/ .
ملفات أخرى:
data.py و data_lp.py هما Dataloaders لـ Labo و Linear Probe ، على التوالي.main.py هي الواجهة لتشغيل جميع التجارب ، ويحتوي utils.py على وظائف استخراج المعالجة والميزات.linear probe.sh هو ملف bash لتشغيل المسبار الخطي. labo_train.sh و labo_test.sh هي ملف bash لتدريب واختبار Labo. للحصول على أداء التحقيق الخطي ، ما عليك سوى تشغيل:
sh linear_probe.sh {DATASET} {SHOTS} {CLIP SIZE}
على سبيل المثال ، بالنسبة لمجموعة بيانات Flower 1-Shot مع تشفير الصور VIT-L/14 ، فإن الأمر هو:
sh linear_probe.sh flower 1 ViT-L/14
سيقوم الرمز تلقائيًا بتشفير الصور وتشغيل بحث فرطمي على تنظيم L2 باستخدام مجموعة DEV. سيتم حفظ أفضل التحقق من صحة وأداء الاختبار في 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/ و regh:
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}
}