Налаштування
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)"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_PROJECT | libreyolo | Логер Weights and Biases, якщо проєкт не передано |
COMET_PROJECT_NAME | libreyolo | Логер 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(), а не змінна середовища.