Exemplo n.º 1
0
    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
Exemplo n.º 3
0
 def test_scan_number(self):
     self.assertEqual(
         get_feature_dict("scan_number")[SUBJECT], 1, "Should be 1")
Exemplo n.º 4
0
 def test_scan_age(self):
     self.assertEqual(round(get_feature_dict("scan_age")[SUBJECT], 3),
                      30.571, "Should be 1.03")
Exemplo n.º 5
0
 def test_birth_weight(self):
     self.assertEqual(
         get_feature_dict("birth_weight")[SUBJECT], 1.03, "Should be 1.03")
Exemplo n.º 6
0
 def test_birth_age(self):
     self.assertEqual(round(get_feature_dict("birth_age")[SUBJECT], 3),
                      28.714, "Should be 28.714")
Exemplo n.º 7
0
 def test_gender(self):
     self.assertEqual(
         get_feature_dict("gender")[SUBJECT], "Male", "Should be Male")