|
import os |
|
import sys |
|
import time |
|
|
|
from code_generation import generate_and_debug, prepare_working_folder |
|
|
|
def repeated_sample(cfg): |
|
num_repeated_samples = cfg.method.num_repeated_samples |
|
num_trials = cfg.method.num_debugging_trials_per_sample |
|
pde_name = cfg.pde.name |
|
working_folder = cfg.working_folder |
|
model_name = cfg.model.name |
|
|
|
if not os.path.exists(working_folder): |
|
os.makedirs(working_folder) |
|
|
|
if cfg.redirect_stdout: |
|
sys.stdout = open(os.path.join(working_folder, 'stdout.txt'), 'w') |
|
|
|
print(f'Model name: {cfg.model.name}') |
|
print(f'Working folder: {working_folder}') |
|
|
|
prepare_working_folder( |
|
cfg, |
|
working_folder=working_folder, |
|
pde_name=pde_name, |
|
use_sample_solver_init=False |
|
) |
|
|
|
|
|
for sample_idx in range(num_repeated_samples): |
|
try: |
|
generate_and_debug( |
|
cfg, |
|
round_idx=sample_idx, |
|
num_trials=num_trials, |
|
pde_name=pde_name, |
|
working_folder=working_folder, |
|
seed_implementations=None, |
|
model_name=model_name |
|
) |
|
except Exception as e: |
|
print(f'Error in sample {sample_idx}: {e}. Move on to the next sample.') |
|
|
|
time.sleep(2) |
|
|