# DQN Production Training Profile — H100 80GB # Full Rainbow DQN: branching + distributional + dueling + double + PER + noisy nets + CQL # # Mixed-precision (NVIDIA AMP pattern): # - f32 master weights, Adam moments, gradients, loss accumulators # - bf16 shadow copies for cuBLAS GemmEx tensor core GEMM # - Cosine LR decay: 1e-4 → 1e-5 over 100 epochs [training] epochs = 200 batch_size = 1024 learning_rate = 0.0001 gamma = 0.99 weight_decay = 0.0001 adam_epsilon = 1e-8 warmup_steps = 0 hidden_dim_base = 256 max_steps_per_epoch = 2000 reward_scale = 1.0 huber_delta = 1.0 lr_decay_type = 2 lr_min = 0.00001 [distributional] num_atoms = 51 [exploration] epsilon_start = 1.0 epsilon_end = 0.01 epsilon_decay = 0.995 noisy_sigma_init = 0.3 entropy_coefficient = 0.001 count_bonus_coefficient = 0.1 q_gap_threshold = 0.05 [replay_buffer] buffer_size = 500000 min_replay_size = 1000 per_alpha = 0.6 per_beta_start = 0.4 [early_stopping] enabled = true patience = 20 min_epochs_before_stopping = 100 [experience] initial_capital = 100000.0 tx_cost_multiplier = 0.0001 min_hold_bars = 5 [experience.fill_simulation] ioc_fill_prob = 0.85 limit_fill_min = 0.30 limit_fill_max = 0.80 spread_cost_frac = 0.50 spread_capture_frac = 0.50 [risk] max_position = 2.0 loss_aversion = 1.5 q_clip_min = -50.0 q_clip_max = 50.0 [advanced] n_steps = 3 tau = 0.005 c51_warmup_epochs = 5 her_ratio = 0.2 cql_alpha = 0.1 curiosity_weight = 0.1 iqn_lambda = 0.25 spectral_norm_sigma_max = 1.5 gradient_clip_norm = 1.0 [reward] loss_aversion = 1.5 q_gap_threshold = 0.1