File size: 1,340 Bytes
56c4b9b |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
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) # Small delay to prevent API rate limit
|