#!/bin/bash # 初始化 Conda 环境路径 source /root/miniconda3/etc/profile.d/conda.sh # 确保主路径在 PYTHONPATH 中 export PYTHONPATH=$PYTHONPATH:/root/autodl-tmp/SplatAtlas # 定义错误日志路径 ERROR_LOG="/root/autodl-tmp/SplatAtlas/run_errors.log" # 每次运行前,在错误日志里画个分割线 echo "================================================================" >> "$ERROR_LOG" echo "🚀 New Run Started at $(date)" >> "$ERROR_LOG" echo "================================================================" >> "$ERROR_LOG" # 定义任务队列:(环境绝对路径 脚本相对路径) declare -a tasks=( # --- 一、 Initialization (2) --- "base scripts/run_vanilla_benchmark.py" "/root/autodl-tmp/envs/3dgs_mcmc scripts/run_3dgsmcmc_benchmark.py" # --- 二、 Attribute Expansion (10) --- "/root/autodl-tmp/envs/2dgs_v2 scripts/run_2dgs_benchmark.py" "/root/autodl-tmp/envs/pgsr scripts/run_pgsr_benchmark.py" "/root/autodl-tmp/envs/ges scripts/run_ges_benchmark.py" "/root/autodl-tmp/envs/scaffold_gs scripts/run_scaffoldgs_benchmark.py" "/root/autodl-tmp/envs/r3dg scripts/run_r3dg_benchmark.py" "/root/autodl-tmp/envs/3dgrut scripts/run_3dgut_benchmark.py" "/root/autodl-tmp/envs/hogs scripts/run_hogs_benchmark.py" "/root/autodl-tmp/envs/texture_gs scripts/run_texturegs_benchmark.py" "/root/autodl-tmp/envs/textured_gs scripts/run_texturedgs_benchmark.py" "/root/autodl-tmp/envs/gaussian_surfels scripts/run_surfel_benchmark.py" # --- 三、 Rendering & Rasterization (5) --- "/root/autodl-tmp/envs/mip-splatting scripts/run_mipsplatting_benchmark.py" "/root/autodl-tmp/envs/ana_splatting scripts/run_analyticsplatting_benchmark.py" "/root/autodl-tmp/envs/3dgs_dr scripts/run_3dgs_dr_benchmark.py" "/root/autodl-tmp/envs/lod_gs scripts/run_lod_gs_benchmark.py" "/root/autodl-tmp/envs/octree_gs scripts/run_octree_gs_benchmark.py" # --- 四、 Regularization (9) --- "/root/autodl-tmp/env scripts/run_sugar_benchmark.py" "/root/autodl-tmp/envs/gof scripts/run_gof_benchmark.py" "/root/autodl-tmp/envs/gsdf scripts/run_gsdf_benchmark.py" "/root/autodl-tmp/envs/erank_gs scripts/run_erankgs_benchmark.py" "/root/autodl-tmp/envs/trimgs scripts/run_trimgs_benchmark.py" "/root/autodl-tmp/envs/gaussianpro scripts/run_gaussianpro_benchmark.py" "/root/autodl-tmp/envs/gspull scripts/run_gspull_benchmark.py" "/root/autodl-tmp/envs/lapis_gs scripts/run_lapisgs_benchmark.py" # --- 五、 Training Strategy (2) --- "/root/autodl-tmp/envs/opti3dgs scripts/run_opti3dgs_benchmark.py" "/root/autodl-tmp/envs/co_adaptation_3dgs scripts/run_coadaptgs_benchmark.py" # --- 六、 Adaptive Control (10) --- "/root/autodl-tmp/envs/absgs_env scripts/run_absgs_benchmark.py" "/root/autodl-tmp/envs/pixelgs scripts/run_pixelgs_benchmark.py" "/root/autodl-tmp/envs/mini_splatting scripts/run_minisplatting_benchmark.py" "/root/autodl-tmp/envs/taming_3dgs scripts/run_tamgs_benchmark.py" "/root/autodl-tmp/envs/atomgs scripts/run_atomgs_benchmark.py" "/root/autodl-tmp/envs/reactgs_env scripts/run_reactgs_benchmark.py" "/root/autodl-tmp/envs/gs_lpm scripts/run_gslpm.py" "/root/autodl-tmp/envs/conegs_env scripts/run_conegs_benchmark.py" "/root/autodl-tmp/envs/steepgs_env scripts/run_steepgs.py" # --- 七、 Post-Processing (4) --- "/root/autodl-tmp/envs/eagles scripts/run_eagles_benchmark.py" "/root/autodl-tmp/envs/rdo-gaussian scripts/run_rdogaussian_benchmark.py" "/root/autodl-tmp/envs/ghap_env scripts/run_ghap_benchmark.py" "/root/autodl-tmp/envs/hac_plus scripts/run_hac_plus_benchmark.py" "/root/autodl-tmp/envs/lightgaussian_official scripts/run_lightgaussian_benchmark.py" ) echo "🚀 SplatAtlas: Starting Robust Optimization Pipeline (42 Methods)..." echo "📝 Errors will be logged to: $ERROR_LOG" for task in "${tasks[@]}"; do # 解析环境路径和脚本 read -r env_path script_path <<< "$task" method_name=$(basename "$script_path") echo "----------------------------------------------------------------" echo "🔄 Method: $method_name" # 1. 激活环境 conda activate "$env_path" if [ $? -eq 0 ]; then # 2. 环境自动体检 echo "🛠️ Checking requirements in $env_path..." pip install lpips imageio scikit-image -q # 3. 执行 Benchmark,stderr 同时打印到终端并写入日志 echo "✅ Environment ready. Executing..." "$CONDA_PREFIX/bin/python" "/root/autodl-tmp/SplatAtlas/$script_path" 2> >(tee -a "$ERROR_LOG" >&2) if [ $? -eq 0 ]; then echo "✨ Finished: $method_name" else echo "❌ Error: $method_name failed. Saved to $ERROR_LOG" echo "[$(date)] FAILED: $method_name" >> "$ERROR_LOG" fi else echo "❌ Failed to activate: $env_path" echo "[$(date)] FAILED (Env Activation): $env_path for $method_name" >> "$ERROR_LOG" fi # 释放当前环境 conda deactivate done echo "================================================================" echo "🏁 Optimization Pipeline completed. Check $ERROR_LOG for crash reports."