| import subprocess | |
| import sys | |
| import time | |
| # Participants đại diện: p01 (Cơ bản), p08 (Thử thách cho Pooling), p11 (Thử thách cho Loss) | |
| # p11 đã hoàn thành (fold 00 theo cách gọi của người dùng) | |
| PARTICIPANTS = ["p01", "p08"] | |
| IDS = range(1, 9) | |
| print(f"{'='*60}") | |
| print(f" STARTING ABLATION BATCH FOR {PARTICIPANTS} ") | |
| print(f" IDs: {list(IDS)} ") | |
| print(f"{'='*60}") | |
| start_total = time.time() | |
| for participant in PARTICIPANTS: | |
| print(f"\n{'#'*40}") | |
| print(f" PROCESSING PARTICIPANT: {participant} ") | |
| print(f"{'#'*40}") | |
| for id_val in IDS: | |
| print(f"\n>>> Running Ablation ID #{id_val} for {participant}...") | |
| cmd = [ | |
| sys.executable, "src/train_ablation.py", | |
| "--id", str(id_val), | |
| "--participant", participant, | |
| "--epochs", "30", | |
| "--workers", "4" | |
| ] | |
| start_id = time.time() | |
| process = subprocess.Popen(cmd) | |
| process.wait() | |
| end_id = time.time() | |
| if process.returncode == 0: | |
| print(f"SUCCESS: {participant} ID #{id_val} completed in {(end_id - start_id)/60:.2f} mins.") | |
| else: | |
| print(f"FAILED: {participant} ID #{id_val} with exit code {process.returncode}") | |
| end_total = time.time() | |
| print(f"\n{'='*60}") | |
| print(f" BATCH COMPLETED in {(end_total - start_total)/3600:.2f} hours ") | |
| print(f"{'='*60}") | |