in vihds/run_inference_graph.py [0:0]
def run_graph(graph_name, staged_nodes):
# TODO: Do some preprocessing and checks here?
# Create directory for results
rootpath = os.path.join(vihds.config.get_results_directory(), graph_name)
resultmap = {}
if not os.path.exists(rootpath):
# print("Path doesn't exist yet. Creating folder: " + rootpath)
os.makedirs(rootpath)
# else:
# print('Graph result folder exists..')
subfolders = os.listdir(rootpath)
for stage in range(len(staged_nodes)):
print("------------------------------------------------------------------------------------------------------")
print("Current stage of the graph: " + str(stage) + " which has " + str(len(staged_nodes[stage])) + " node(s).")
for node in staged_nodes[stage]:
print("#############################")
print("Processing Node: " + node.name)
run_node = True
for subfolder in subfolders:
if subfolder.startswith(node.name):
sbpath = [f.path for f in os.scandir(rootpath) if (f.is_dir() and (f.name == subfolder))][0]
completedpath = os.path.join(sbpath, "completed.txt")
if os.path.exists(completedpath):
with open(completedpath) as file:
completednode = file.read()
if completednode == node.args.experiment:
resultmap[node.name] = sbpath
run_node = not (completednode == node.args.experiment)
if run_node:
print("About to start running Node:" + node.name + ".")
settings = Config(node.args)
settings.trainer = Trainer(node.args, add_timestamp=True)
print("-----------------------------")
print("Before propagating parameters:")
print(settings.params)
print("-----------------------------")
propagate_params(node, settings, resultmap)
print("After propagating parameters:")
print(settings.params)
save_propagatedParameters(settings.params, settings.trainer.tb_log_dir)
print("-----------------------------")
CallRunXval.execute(node.args, settings)
resultmap[node.name] = settings.trainer.tb_log_dir
else:
print("Node:" + node.name + " execution completed.")