Code-style guide and reference patterns for DL/CV research at the ЛИСАД laboratory (NADEZHDA / SOFIA CVGL projects). Files: - Стандарт написания кода для DL CV исследований (CVGL).md - Правила написания Python-кода (Gin-Config Strict Pattern).md - REQUIREMENTS_GIN_STYLE.md - Gin-Config Strict Pattern Reference Examples.md - Переход от argparse и dataclass к gin-config.md - gin-parse.md - Рекомендуемые gin-config категории.md - config_loader_reference.py - README.md (this commit) - .gitignore (Python artifacts)
1.8 KiB
paths:
- "**/*.py"
Правила написания Python-кода (Gin-Config Strict Pattern)
Окружение
-
Python 3.10+, PyTorch 2.x
-
from __future__ import annotations— первая строка каждого файла -
Код, переменные, комментарии — на английском языке
Типизация и документация
-
Strict type hints на всех аргументах и return types
-
Google-style docstrings на всех публичных классах и функциях
Конфигурация: gin-config (не argparse, не dataclass)
-
@gin.configurableтолько на классах -
Все параметры со значениями по умолчанию в
__init__ -
Загрузка:
get_<name>_cfg(path2cfg)→gin.parse_config_file()→ return instance -
Передача конфигов явно через аргументы (не через глобальный gin state)
-
Формат .gin: плоский (
ClassName.param = value), без макросов
DL/CV практики
-
VRAM: sequential model loading,
del model+gc.collect()+empty_cache()после использования -
Reproducibility:
torch.manual_seed(42),np.random.seed(42) -
Atomic writes: temp file +
os.replace()для .npy/.json -
Inference:
@torch.inference_mode(), результат на.cpu()
Структура
-
in/config_files/— .gin файлы (1 файл = 1 конфиг-класс) -
src/conf/— конфиг-классы + get_*_cfg() загрузчики -
src/augmentor/илиsrc/— бизнес-логика (dataset, models, inference, io_utils)
Полный стандарт: skill /code-style