Переглянути як Markdown

Налаштування

LibreYOLO не має конфігураційного файла. Поведінкою, яку не задають аргументи функцій, керують змінні середовища та невелика кількість усталених каталогів, наведених тут.

Змінні середовища

ЗміннаСтандартне значенняВплив
LIBREYOLO_DATASETS_DIR~/datasetsКореневий каталог датасетів. Один раз читається під час імпорту в libreyolo.data.DATASETS_DIR
LIBREYOLO_FASTER_COCO_EVALне заданоПеревизначає прапорець валідації faster_coco_eval. 1, true, yes або on примусово вмикає швидший бекенд, будь-яке інше значення примусово вимикає його, а відсутність значення залишає вибір прапорцю конфігурації
LIBREYOLO_KERNELSне заданоВибір ядер. off або reference примусово вибирає еталонні реалізації; будь-яке інше значення вибирає лише реалізації, зареєстровані під цим ім'ям
LIBREYOLO_QUANT_KERNELSне заданоЗастарілий псевдонім LIBREYOLO_KERNELS, читається лише тоді, коли основну змінну не задано
LIBREYOLO_HUB_KERNELSне задано0, false, off або no вимикає завантаження ядер із Hugging Face Hub. Будь-яке інше значення, зокрема відсутнє, залишає його ввімкненим
LIBREYOLO_MHR_PATH~/.cache/libreyolo/mhr/mhr_model.ptРозташування моделі тіла MHR для задачі mesh
LIBRELABEL_ENABLE_LOCATEне заданоМає точно дорівнювати 1, true, yes або on, щоб засіб розмічування показував помічника LocateAnything. Будь-яке інше значення залишає його вимкненим
SAM_3D_BODY_PATHне заданоШлях до пакета SAM 3D Body для сімейства сітки, якщо його не передано конструктору
HF_TOKENне заданоТокен доступу Hugging Face для репозиторіїв з обмеженим доступом

Спрямування кореневого каталогу датасетів в інше місце
export LIBREYOLO_DATASETS_DIR=/data/datasetspython -c "from libreyolo.data import DATASETS_DIR; print(DATASETS_DIR)"
Читання визначеного значення з Python
from libreyolo.data import DATASETS_DIR # Стандартне значення ~/datasets; LIBREYOLO_DATASETS_DIR перевизначає його під час імпорту.print(DATASETS_DIR)

LIBREYOLO_DATASETS_DIR читається під час імпорту, тому його встановлення після імпорту libreyolo.data не впливає на DATASETS_DIR.

Ядра Hub використовують двокомпонентну згоду. Отримання під час виконання відбувається лише тоді, коли встановлено необов'язковий пакет kernels, тому встановлення libreyolo[hub-kernels], це ввімкнення, а LIBREYOLO_HUB_KERNELS=0, вимкнення. На встановлення без цієї додаткової залежності жоден варіант не впливає.

Вибір ядер також перериває імпорти: якщо LIBREYOLO_KERNELS примусово задає off або reference, вбудовані прискорені постачальники взагалі не імпортуються. Реєстр, яким керують ці три змінні, описано в розділі ядра.

Змінні, які задає бібліотека

Ці змінні записуються, а не читаються, тому задавати їх вручну не рекомендується.

ЗміннаХто задає
RANK, LOCAL_RANK, WORLD_SIZE, MASTER_ADDR, MASTER_PORTДопоміжна функція запуску DDP, по одному значенню на робочий процес
CUDA_VISIBLE_DEVICESТимчасово звужується під час розподіленого налаштування, а потім відновлюється
PYTORCH_ENABLE_MPS_FALLBACKТренери EC задають 1 через setdefault, тому наявне значення має пріоритет
MOMENTUM_ENABLEDЗавантажувач сімейства сітки задає через setdefault

LOCAL_RANK також слугує ознакою розподіленого режиму: за її наявністю в середовищі код навчання визначає, що працює під DDP.

Змінні логерів

Необов'язкові логери навчання використовують резервні значення змінних середовища для назви проєкту.

ЗміннаСтандартне значенняХто використовує
WANDB_PROJECTlibreyoloЛогер Weights and Biases, якщо проєкт не передано
COMET_PROJECT_NAMElibreyoloЛогер Comet, якщо проєкт не передано

Автентифікація в цих службах виконується їхніми власними засобами, а не LibreYOLO.

Токени

HF_TOKEN, це токен доступу Hugging Face. Якщо його не задано, токен читається з ~/.cache/huggingface/token, куди його записує вхід через CLI Hugging Face. Працюють обидва варіанти.

Токен потрібен лише для репозиторіїв з обмеженим доступом. SAM 3, це приклад із постачання: її ваги завантажуються із закритого репозиторію за спеціальною ліцензією, тому потрібно прийняти умови на сторінці репозиторію й автентифікувати сеанс.

Каталоги

ШляхВміст
weights/Завантажені контрольні точки, знімки Hugging Face й експортовані артефакти
~/datasetsКореневий каталог датасетів, якщо LIBREYOLO_DATASETS_DIR не вказує інше
~/.cache/huggingface/tokenТокен Hugging Face, якщо його немає в HF_TOKEN
~/.cache/libreyolo/mhr/mhr_model.ptМодель тіла MHR, якщо LIBREYOLO_MHR_PATH не вказує інше
runs/track/Стандартний каталог результатів для model.track(save=True)

weights/ задається відносно робочого каталогу. Просте ім'я файла визначається через нього, тому LibreYOLO("LibreYOLO9t.pt") шукає weights/LibreYOLO9t.pt і завантажує його туди за відсутності. model.export() записує в той самий каталог, якщо output_path не задано. Суміжні рівні завантажують багатофайлові знімки в weights/<Prefix><size>/.

Поведінка завантаження

Завантаження ваг повторюється до трьох разів із затримкою, відновлюється з часткового файла та захищається файлом блокування, щоб два процеси не отримували одночасно ту саму контрольну точку. Сімейство, яке отримує дані зі стороннього хоста, може закріпити контрольну суму й завершити роботу з помилкою в разі невідповідності.

Деякі завантаження показують повідомлення про ліцензію перед початком. Ці повідомлення є частиною шляху завантаження, і їх не можна вимкнути через конфігурацію.

Бекенд валідації

model.val() стандартно приймає faster_coco_eval=True і переходить до pycocotools, коли пакет не встановлено, показавши попередження один раз. Налаштування LIBREYOLO_FASTER_COCO_EVAL перевизначає прапорець окремого виклику, що підходить для системи бенчмаркінгу, яка не може змінювати конфігурацію кожного запуску. Фактично використаний бекенд указано в model.last_eval_backend.

Скрипти завантаження датасетів

YAML датасету може містити поле download із кодом Python. Він не виконується, якщо виклику, що читає його, не передано allow_download_scripts=True. Це аргумент функцій val() і export(), а не змінна середовища.

Змінні знайдено пошуком os.environ і os.getenv у libreyolo/**/*.py версії v1.5.0; семантику прочитано в кожному місці використання. Угоди щодо каталогів взято з libreyolo/data/utils.py, libreyolo/utils/download.py, libreyolo/export/exporter.py, libreyolo/models/base/model.py і libreyolo/models/sam3dbody/mhr_body.py.