in main_evaluate_imnet.py [0:0]
def run(input_size,architecture,weight_path,imnet_path,batch,workers,shared_folder_path,job_id,local_rank,global_rank,num_tasks):
cluster_cfg = ClusterConfig(dist_backend="nccl", dist_url="")
shared_folder=None
data_folder_Path=None
if Path(str(shared_folder_path)).is_dir():
shared_folder=Path(shared_folder_path+"/evaluate/")
else:
raise RuntimeError("No shared folder available")
if Path(str(imnet_path)).is_dir():
data_folder_Path=Path(str(imnet_path))
else:
raise RuntimeError("No shared folder available")
train_cfg = TrainerConfig(
data_folder=str(data_folder_Path),
architecture=architecture,
weight_path=weight_path,
input_size=input_size,
imnet_path=imnet_path,
batch_per_gpu=batch,
workers=workers,
local_rank=local_rank,
global_rank=global_rank,
num_tasks=num_tasks,
job_id=job_id,
save_folder=str(shared_folder),
)
# Create the executor
os.makedirs(str(shared_folder), exist_ok=True)
init_file = shared_folder / f"{uuid.uuid4().hex}_init"
if init_file.exists():
os.remove(str(init_file))
cluster_cfg = cluster_cfg._replace(dist_url=init_file.as_uri())
trainer = Trainer(train_cfg, cluster_cfg)
#The code should be launch on each GPUs
try:
if global_rank==0:
val_accuracy = trainer.__call__()
print(f"Validation accuracy: {val_accuracy}")
else:
trainer.__call__()
except:
print("Job failed")