#!/bin/bash set -e echo "=========================================" echo "DQN Hyperopt Deployment (CORRECTED OBJECTIVE)" echo "=========================================" echo "" # Configuration TIMESTAMP=$(date +%Y%m%d_%H%M%S) OUTPUT_DIR="dqn_hyperopt_corrected_${TIMESTAMP}" echo "Configuration:" echo " Objective: Episode rewards (CORRECTED from validation loss)" echo " Trials: 50" echo " Epochs per trial: 100" echo " GPU: RTX A4000 ($0.25/hr)" echo " Expected duration: 12-25 min" echo " Expected cost: $0.05-$0.10" echo " Output: /runpod-volume/ml_training/${OUTPUT_DIR}" echo "" # Verify Docker image is up-to-date echo "Verifying Docker image..." IMAGE_DATE=$(docker images jgrusewski/foxhunt-hyperopt:latest --format "{{.CreatedAt}}" | head -1) echo " Image timestamp: ${IMAGE_DATE}" echo " Expected: Nov 1, 2025 23:18+ (after fix)" echo "" # Deploy DQN hyperopt with CORRECTED objective echo "Deploying DQN hyperopt pod..." python3 scripts/python/runpod/runpod_deploy.py \ --gpu-type "RTX A4000" \ --image "jgrusewski/foxhunt-hyperopt:latest" \ --command "hyperopt_dqn_demo --parquet-file /runpod-volume/test_data/ES_FUT_180d.parquet --trials 50 --epochs 100 --base-dir /runpod-volume/ml_training/${OUTPUT_DIR}" echo "" echo "✅ DQN hyperopt deployment initiated (CORRECTED OBJECTIVE)" echo "Monitor logs: python3 scripts/python/runpod/monitor_logs.py " echo "" echo "CRITICAL FIX APPLIED:" echo " Previous objective: val_loss (WRONG - rewarded tiny batches)" echo " New objective: -avg_episode_reward (CORRECT)" echo "" echo "Expected Results:" echo " Batch size: Should vary widely (not stuck at 32-43)" echo " Learning rate: Should optimize for actual learning" echo " Episode rewards: Should maximize trading returns" echo " Q-values: Should show proper value estimation" echo "" echo "Previous Issue (FIXED):" echo " Tiny batch sizes (32-43) prevented learning" echo " Q-values stayed near zero (noisy gradients)" echo " Validation loss was artificially low (misleading)" echo "" echo "Next Steps:" echo " 1. Monitor pod logs for trial progress" echo " 2. Check best hyperparameters after completion" echo " 3. Compare batch sizes to previous run (32-43)" echo " 4. Verify Q-values and episode rewards improve" echo ""