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

Experiment config

7.1 ExperimentConfig — параметры эксперимента

Полный список параметров cnn_neat/experiment.py:

Группа: Воспроизводимость и задача

Параметр Default Диапазон Описание
seed 42 \(\mathbb{Z}\) Seed для RNG (val indices, эволюция)
positive_class 0 0..9 Класс CIFAR-10, считающийся позитивным

Группа: Топология

Параметр Default Диапазон Описание
input_image_size (32, 32) \((H,W) \ge 1\) Пространственный размер входа
output_image_size (1, 1) \((H,W) \ge 1\) Размер выходной карты признаков
num_input_views 1 \(\ge 1\) Число входных видов (views)
max_hidden_layers 5 \(\ge 0\) \(L_\text{max}\) — макс. глубина
max_neurons_per_layer 4 \(\ge 1\) \(N_\text{max}\) — макс. ширина
activation None None, relu, gelu, tanh, leaky_relu Активация после каждого Conv2d
output_readout mean_minus_median mean, mean_minus_median Агрегация выходного feature map
input_channels 3 \(\ge 1\) Число каналов (RGB=3)
allow_variable_channels False bool Переменные каналы на скрытых узлах
allowed_channels None[3,8,16] список int Доступные ширины каналов
edge_weights False bool Обучаемые скалярные веса рёбер (softmax merge)

Группа: Эволюция

Параметр Default Диапазон Описание
population_size 100 \(\ge 2\) \(P\) — размер популяции
num_generations 30 \(\ge 1\) Число поколений
elite_percent 0.2 \((0, 1)\) \(\rho\) — доля элиты
offspring_queue_recent_fraction 0.5 \((0, 1)\) Доля следующей pop из свежих offspring
offspring_queue_max_size 1000 int или None Жёсткий cap очереди offspring

Группа: Tiered fitness (опционально)

Параметр Default Описание
fitness_tiered_enabled False Двухступенчатый eval (screen → full val)
fitness_screen_size 2048 Stratified screen-val
fitness_screen_survivor_fraction 0.5 Доля pop на full val после screen
fitness_screen_cache_enabled True RAM-кеш screen-активаций элит
fitness_screen_cache_max_entries 1000 Макс. записей LRU
fitness_screen_cache_max_bytes 50_000_000_000 Бюджет RAM
fitness_screen_indices_file data/cifar10/fitness_screen_indices.json Путь к screen-индексам

Группа: Elite Refinement

Параметр Default Описание
elite_refinement_enabled False Двухстадийный отбор
elite_refinement_every 1 Частота (поколений)
elite_refinement_pre_multiplier 2.0 Pre-filter: \(\rho \cdot \text{mult}\)
elite_refinement_train_epochs 10 Эпох Adam
elite_refinement_train_batch_size 128 Batch size Adam
elite_refinement_lr 1e-3 Learning rate

Группа: Periodic GD

Параметр Default Описание
periodic_gd_enabled False Включить
periodic_gd_every 5 Частота (поколений)
periodic_gd_epochs 3 Эпох на геном
periodic_gd_batch_size 256 Batch size
periodic_gd_lr 1e-3 Learning rate

Группа: Оценка фитнеса

Параметр Default Диапазон Описание
fitness_val_size 25000 \([1, 50000]\) Размер val-подмножества
fitness_metric balanced_accuracy см. §5.2 Целевая метрика
eval_batch_size 45000 \([256, 50000]\) \(B_\text{cap}\) — максимальный batch при оценке
eval_batch_size_min 256 \([1, \ldots]\) Нижний порог VRAM-контроллера
adaptive_eval_batch_size False bool Адаптивный batch по VRAM
vram_usage_threshold 0.80 \((0, 1)\) Порог деления batch надвое
fitness_eval_parallel 1 \(\ge 1\) Число CUDA streams
decision_rule score score, probability, quantile Правило классификации
decision_threshold 0.0 \(\mathbb{R}\) Порог решения

Группа: GPU и форвард

Параметр Default Описание
forward_runtime eager eager, compile, cuda_graph
torch_compile_mode reduce-overhead режим torch.compile
use_amp True Automatic Mixed Precision (float16)
cudnn_benchmark False cuDNN autotune
gpu_memory_fraction 0.85 \(\alpha\) для адаптивного batch
cuda_graph_memory_reserve_bytes 600_000_000 \(M_\text{reserve}\) (600 МБ)
cache_val_on_gpu True Предзагрузить val на GPU
cache_refinement_test_on_gpu True Test на GPU для refinement
cache_refinement_train_on_gpu True Train на GPU для refinement
offload_genome_after_eval False Выгружать геном на CPU после eval
keep_population_on_gpu_within_generation True Держать pop на GPU внутри поколения (gpu_resident)
adaptive_population_vram True PopulationVRAMManager
population_gpu_chunk_bytes None Лимит весов на GPU-чанк (байты)
cuda_memory_release_every_n_genomes 0 empty_cache каждые N genomes при eval

Группа: Артефакты

Параметр Default Описание
save_run_path runs/cifar10_binary_notebook Корень run
save_format archive archive (единый JSON) или legacy
live_dashboard_refresh_sec 5 Интервал авто-обновления HTML
live_dashboard_update_every 1 Обновлять каждые N поколений