def __init__(self, opt): self.opt = opt self.gpu_ids = opt.gpu_ids self.is_train = opt.is_train self.device = torch.device('cuda:{}'.format( self.gpu_ids[0])) if self.gpu_ids else torch.device('cpu') self.save_dir = join(opt.checkpoints_dir, opt.name) self.optimizer = None self.edge_features = None self.labels = None self.mesh = None self.soft_label = None self.loss = None self.path = None self.nclasses = opt.nclasses # Adding input features additionally into the fully connected layer self.feature_keys = opt.features if self.feature_keys: self.feature_dictionaries = { feature: get_feature_dict(feature) for feature in self.feature_keys } self.feature_values = None # Logging results into a file for each testing epoch self.save_dir = join(opt.checkpoints_dir, opt.name) self.testacc_log = join(self.save_dir, 'testacc_full_log_') self.final_testacc_log = join(self.save_dir, 'final_testacc_full_log_') # Load/define networks self.net = networks.define_classifier(opt.input_nc, opt.ncf, opt.ninput_edges, opt.nclasses, opt, self.gpu_ids, opt.arch, opt.init_type, opt.init_gain, num_features=len( self.feature_keys)) self.net.train(self.is_train) self.criterion = networks.define_loss(opt).to(self.device) if self.is_train: self.optimizer = torch.optim.Adam(self.net.parameters(), lr=opt.lr, betas=(opt.beta1, 0.999)) self.scheduler = networks.get_scheduler(self.optimizer, opt) print_network(self.net) if not self.is_train or opt.continue_train: self.load_network(opt.which_epoch)
def __init__(self, opt): BaseDataset.__init__(self, opt) self.opt = opt self.device = torch.device('cuda:{}'.format( opt.gpu_ids[0])) if opt.gpu_ids else torch.device('cpu') self.root = opt.dataroot self.dir = os.path.join(opt.dataroot) if opt.verbose: print("DEBUG dir path in dataset ", self.dir) if opt.dataset_mode == 'regression': self.class_to_idx = get_feature_dict(opt.batch_labels) self.nclasses = 1 else: self.classes, self.class_to_idx = self.find_classes(self.dir) self.nclasses = len(self.classes) self.paths = self.make_dataset_by_class(self.dir, self.class_to_idx, opt.phase, opt.dataset_mode) self.size = len(self.paths) self.get_mean_std() # modify for network later. opt.nclasses = self.nclasses opt.input_nc = self.ninput_channels
def test_scan_number(self): self.assertEqual( get_feature_dict("scan_number")[SUBJECT], 1, "Should be 1")
def test_scan_age(self): self.assertEqual(round(get_feature_dict("scan_age")[SUBJECT], 3), 30.571, "Should be 1.03")
def test_birth_weight(self): self.assertEqual( get_feature_dict("birth_weight")[SUBJECT], 1.03, "Should be 1.03")
def test_birth_age(self): self.assertEqual(round(get_feature_dict("birth_age")[SUBJECT], 3), 28.714, "Should be 28.714")
def test_gender(self): self.assertEqual( get_feature_dict("gender")[SUBJECT], "Male", "Should be Male")