class Executor: def __init__(self, cf): unet = Modified3DUNet(1, 1) resnet = resnet34() # device = torch.device('cpu') unet.load_state_dict(torch.load(cf.pathToSegmentator)) resnet.load_state_dict(torch.load(cf.pathToClassifier)) unet.eval() resnet.eval() self.segmentator = Estimator( unet, save_folder='./experiments/unet_full_pipe_eval/', cuda_device=0, optimizer=Adam, loss_fn=dice_loss) self.classify = Estimator( resnet, save_folder='./experiments/res_full_pipe_eval/', cuda_device=1, optimizer=Adam, loss_fn=torch.nn.CrossEntropyLoss()) self.pipe = Pipe(cf, self.classify, self.segmentator) try: shutil.rmtree(cf.save_path) except Exception as e: print(str(e)) try: os.makedirs(cf.save_path) print("Directory created") except Exception as e: print(str(e)) def unpack(self, pathToArchive, pathToConverted, numWorkers=3): prep = Preprocess(pathToArchive, pathToConverted, numWorkers) prep.start() self.pipe.add_dataset(pathToConverted) def start(self): return self.pipe.start_inference()