Перейти к содержанию

File reference

2.3 Описание каждого файла

Библиотека cnn_neat/

Файл Назначение Ключевые классы/функции
config.py Библиотечные константы, глобальные дефолты мутаций, каналов, путей Константы: DEFAULT_MAX_HIDDEN_LAYERS, WEIGHT_INIT_MIN/MAX, MUTATION_WEIGHT_RATE, ALLOWED_ACTIVATIONS, ELITE_PERCENT, CUDA_EMPTY_CACHE_INTERVAL
experiment.py Замороженный датакласс параметров одного эксперимента; передаётся через весь pipeline ExperimentConfig — все настраиваемые параметры: топология, эволюция, refinement, GPU, артефакты
network.py Геном CNN: DAG с Conv2d на рёбрах; forward, мутации геометрии, сохранение/загрузка ConvolutionalNeuralNetwork: forward(), add_node_split(), add_connection(), remove_node(), _kp_for_edge(), _rebuild_parameters(), structure_hash
connection_gene.py Описание одного ребра DAG — «ген связи» ConvolutionConnectionGene: поля kernel_size, padding, stride, weight_scale, enabled, innovation_id
forward_plan.py Компиляция DAG в структуру ExecutionPlan; execute_plan — форвард по плану ExecutionPlan, MergeNodeStep, ConvEdgeStep, PlannedForwardBody, build_execution_plan(), execute_plan()
forward_runtime.py Три режима форварда: eager / torch.compile / CUDA Graph; AMP; адаптивный batch forward_features(), resolve_eval_batch_size(), estimate_bytes_per_sample(), ForwardRunner
mutations.py Все операторы мутации NEAT; crossover ConvolutionalNetworkMutator, crossover_parents(), MutationType (enum)
evolver.py Менеджер популяции; fitness; сохранение; архивная смесь CnnNeat (alias NEAT): evolve(), select_elite(), set_fitness_scores(), predict(), save_current_generation()
evolution_loop.py Главный тренировочный цикл; оркестрирует все компоненты run_evolution() — полный цикл: val fitness → [GD/refinement] → evolve
eval.py Оценка фитнеса популяции; все метрики; GPU-кэш валидации evaluate_population_fitness(), GPUValCache
tiered_eval.py Двухступенчатый fitness: screen-val → full val для top-доли популяции evaluate_population_fitness_tiered(), TieredEvalResult
screen_cache.py RAM-кеш 2k-активаций элит; incremental forward для offspring ScreenCacheStore, refresh_elite_screen_cache()
evolution_log.py Форматированные строки лога цикла эволюции log_eval_setup(), log_fitness(), log_timing()
lineage.py Происхождение генома (родитель, тип мутации) GenomeLineage
binary_head.py Фиксированный бинарный классификатор поверх feature map; BCE output_to_score(), predict_from_scores(), compute_bce_loss()
heads.py Опциональная линейная голова для многоклассовой задачи LinearClassifierHead — не входит в геном
cifar10_data.py DataLoader'ы CIFAR-10; val/screen индексы; нормализация build_val_loader(), build_screen_val_loader(), load_or_save_screen_indices()
finetune.py Adam fine-tune конволюционных весов (топология заморожена) finetune_genome() — BCE + Adam, топология не меняется
elite_refinement.py Двухстадийный отбор элиты: val → fine-tune → test run_elite_refinement(), evaluate_and_refine_elites()
periodic_gd.py Лёгкий градиентный спуск по всей популяции каждые N поколений run_periodic_gd_on_population()
run_experiment.py Точка входа для одного эксперимента run_single_experiment(), create_evolver()
save.py Персистентность геномов; два формата: archive/legacy SaveManager, RunInfo
run_archive.py Единый JSON-файл на run + top-K весов .pt RunArchive — эпохи, геномы, веса
registry.py Реестр исторически лучших моделей ModelRegistry, HistoricalModel, PopulationStats
generation_summary.py JSON-сводка поколения; мета-информация о run build_generation_summary(), write_run_meta()
dashboard.py Live Plotly HTML с авто-обновлением (refresh каждые N сек) save_evolution_dashboard_plotly_html()
final_report.py Статический HTML после run: CM, примеры, архитектура save_final_run_report()
unified_report.py Сравнительный HTML нескольких run save_unified_comparison_report()
report_viz.py Matplotlib-фигуры: матрица ошибок, TP/TN/FP/FN-сетки plot_confusion_matrix(), plot_example_predictions()
arch_viz.py Визуализация топологии DAG plot_genome_architecture(), format_genome_architecture()
comparison_metrics.py Вспомогательный модуль Phase-1 grid; ranking score; backfill compute_phase1_ranking(), backfill_missing_metrics()
vram_batch.py Адаптивный контроллер размера батча по VRAM VRAMBatchController — порог 90%, деление надвое при давлении
runtime_gpu.py Настройка GPU, seed, верификация set_seed(), configure_gpu_for_training(), verify_gpu_runtime()
paths.py Обнаружение корня репозитория repo_root()
logging.py Конфигурация логирования configure(), add_file_handler()

Скрипты scripts/ablation/

Файл Назначение
hyperparameters.py Единый источник истины: BASELINE_CFG, ABLATION_GRID, PHASE_GROUPS, построители Phase A/B
01_hyperparameters.py Вывод сетки аблаций в консоль
02_arch_ablation.py Запуск one-at-a-time аблаций
05_structured_study.py Последовательный запуск Фаз A→B→C→D с live-дашбордом
03_final_report.py Сводный HTML-отчёт из архивов

Приложения apps/

Компонент Назначение
apps/run_viewer Dash-приложение: кривые fitness, топология, сравнение run, экспорт CSV/JSON
apps/neat_runner FastAPI-сервер для запуска run через веб-интерфейс