@@ -278,8 +278,8 @@ def generate_initial_tasks(args):
278278 """Generates tasks for Pass 0 based on the initial log file."""
279279 print (f"[Init] Pass 0: Reading from log file: { args .log_file } " )
280280 initial_failures = get_incorrect_models (args .tolerance , args .log_file )
281- # t1_incorrect_models = get_incorrect_models(1, args.log_file)
282- # initial_failures = initial_failures - t1_incorrect_models
281+ t1_incorrect_models = get_incorrect_models (1 , args .log_file )
282+ initial_failures = initial_failures - t1_incorrect_models
283283
284284 tasks_map = {}
285285 for model_path in initial_failures :
@@ -291,7 +291,12 @@ def generate_initial_tasks(args):
291291 }
292292
293293 max_subgraph_size = args .max_subgraph_size
294- running_states = {"pass_0" : {"incorrect_models" : list (initial_failures )}}
294+ running_states = {
295+ "pass_0" : {
296+ "num_incorrect_models" : len (initial_failures ),
297+ "incorrect_models" : list (sorted (initial_failures )),
298+ }
299+ }
295300 return tasks_map , max_subgraph_size , running_states
296301
297302
@@ -301,19 +306,14 @@ def generate_refined_tasks(base_output_dir, current_pass_id):
301306 print (f"[Init] Resuming from Pass_{ current_pass_id - 1 } (Dir: { prev_pass_dir } )..." )
302307
303308 prev_config = DecomposeConfig .load (prev_pass_dir )
304- prev_incorrect_subgraphs = prev_config .incorrect_models
305- prev_tasks_map = prev_config .tasks_map
306- running_states = prev_config .running_states
307-
308- # Load previous max size as fallback
309- prev_max_subgraph_size = prev_config .max_subgraph_size
310- max_subgraph_size = prev_max_subgraph_size // 2
311-
312- if not prev_incorrect_subgraphs :
313- return {}, max_subgraph_size , running_states
309+ max_subgraph_size = prev_config .max_subgraph_size // 2
310+ if not prev_config .incorrect_models :
311+ return {}, max_subgraph_size , prev_config .running_states
314312
315313 tasks_map = {}
316- for subgraph_path in prev_incorrect_subgraphs :
314+ prev_tasks_map = prev_config .tasks_map
315+
316+ for subgraph_path in sorted (prev_config .incorrect_models ):
317317 # Parse model name and subgraph index
318318 model_name_with_subgraph_idx = subgraph_path .rstrip ("/" ).split (os .sep )[- 1 ]
319319 model_name = "_" .join (model_name_with_subgraph_idx .split ("_" )[:- 1 ])
@@ -336,7 +336,7 @@ def generate_refined_tasks(base_output_dir, current_pass_id):
336336 "split_positions" : set (),
337337 }
338338
339- return tasks_map , max_subgraph_size , running_states
339+ return tasks_map , max_subgraph_size , prev_config . running_states
340340
341341
342342def prepare_tasks_and_verify (args , current_pass_id , base_output_dir ):
@@ -473,10 +473,11 @@ def main(args):
473473 next_round_models = set ()
474474 if task_controller .task_scheduler ["post_analysis" ]:
475475 print ("\n --- Phase 3: Analysis ---" )
476- next_round_models = get_incorrect_models (args .tolerance , pass_log_path )
476+ next_round_models = sorted ( get_incorrect_models (args .tolerance , pass_log_path ) )
477477 print (f"[Analysis] Found { len (next_round_models )} incorrect subgraphs.\n " )
478478 running_states [f"pass_{ current_pass_id + 1 } " ] = {
479- "incorrect_models" : list (next_round_models )
479+ "num_incorrect_models" : len (next_round_models ),
480+ "incorrect_models" : list (next_round_models ),
480481 }
481482 print_summary_and_suggestion (next_round_models , max_subgraph_size )
482483
0 commit comments