#!/bin/bash LOG_FILE="/tmp/ml_training/hyperopt_full/hyperopt_full_run.log" echo "=== DQN Hyperopt Campaign Analysis ===" echo "" # Start time START_TIME=$(head -5 "$LOG_FILE" | grep -E "^\\[2m20" | head -1 | sed 's/\[2m\(.*\)Z\[0m.*/\1/') echo "Start time: $START_TIME" # End time END_TIME=$(tail -5 "$LOG_FILE" | grep -E "^\\[2m20" | tail -1 | sed 's/\[2m\(.*\)Z\[0m.*/\1/') echo "End time: $END_TIME" echo "" echo "=== TRIAL STATISTICS ===" # Count completed trials (those with "✓ Trial N completed") COMPLETED=$(grep "✓ Trial" "$LOG_FILE" | wc -l) echo "Trials completed: $COMPLETED" # Count pruned trials PRUNED_GRAD=$(grep "gradient explosion" "$LOG_FILE" | wc -l) PRUNED_Q=$(grep "Q-value collapse" "$LOG_FILE" | wc -l) PRUNED_TOTAL=$((PRUNED_GRAD + PRUNED_Q)) echo "Pruned (gradient explosion): $PRUNED_GRAD" echo "Pruned (Q-value collapse): $PRUNED_Q" echo "Pruned (total): $PRUNED_TOTAL" echo "Valid trials: $((COMPLETED - PRUNED_TOTAL))" echo "" echo "=== LAST 10 COMPLETED TRIALS ===" grep "✓ Trial" "$LOG_FILE" | tail -10 echo "" echo "=== ALL PRUNED TRIALS ===" grep "PRUNED" "$LOG_FILE" | grep -E "(Trial [0-9]+)" echo "" echo "=== CAMPAIGN STATUS ===" if grep -q "Optimization finished" "$LOG_FILE"; then echo "Status: ✅ COMPLETED" elif ps aux | grep -q "[h]yperopt_dqn_demo"; then echo "Status: 🔄 RUNNING" else echo "Status: ❌ CRASHED or TERMINATED" echo "" echo "Last 10 log lines:" tail -10 "$LOG_FILE" | sed 's/\[2m//g; s/\[0m//g; s/\[32m//g; s/\[33m//g' fi