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() |