def build_default_parameter(self):
     if self.src_dataset.domain == "office31":
         self.batchsize = 25
         lr = 0.001
         momentum = 0.9
         l2_decay = 5e-4
         self.net = build_network("office_ResNet50").to(self.device)
         self.optimizer = torch.optim.SGD(
             [{
                 'params': self.net.backbone.parameters(),
                 'lr': lr
             }, {
                 'params': self.net.classifier1.parameters(),
                 'lr': lr * 10
             }],
             momentum=momentum,
             weight_decay=l2_decay)
     elif self.src_dataset.domain == "visda":
         self.batchsize = 50
         lr = 0.001
         momentum = 0.9
         l2_decay = 5e-4
         self.net = build_network("visda_ResNet50")
         self.optimizer = torch.optim.SGD(
             [{
                 'params': self.net.backbone.parameters(),
                 'lr': lr
             }, {
                 'params': self.net.classifier1.parameters(),
                 'lr': lr * 10
             }],
             momentum=momentum,
             weight_decay=l2_decay)
示例#2
0
 def set_network(self, net_name, dataset, pretrained_model, embedding_size=None, attention_size=150,
                 n_attention_heads=3):
     """Builds the CVDD network composed of a pretrained_model, the self-attention module, and context vectors."""
     self.net_name = net_name
     self.net = build_network(net_name, dataset, embedding_size=embedding_size, pretrained_model=pretrained_model,
                              update_embedding=False, attention_size=attention_size,
                              n_attention_heads=n_attention_heads)
示例#3
0
def main(dataset_name, net_name, xp_path, data_path, load_model, device, seed,
         batch_size, n_jobs_dataloader, normal_class, isize, rep_dim, k,
         npc_temperature, npc_momentum, ans_select_rate, ans_size):

    cfg = Config(locals().copy())
    # Set seed
    if seed != -1:
        random.seed(seed)
        np.random.seed(seed)
        torch.manual_seed(seed)

    # Default device to 'cpu' if cuda is not available
    if not torch.cuda.is_available():
        device = 'cpu'

    dataset = load_dataset(dataset_name, data_path, normal_class, isize)
    network = build_network(net_name, rep_dim)
    lr, n_epochs, weight_decay, w_rec, w_contrast = 0, 0, 0, 0, 0
    trainer = Solver(dataset, network, lr, n_epochs, batch_size, rep_dim, k,
                     weight_decay, device, n_jobs_dataloader, w_rec,
                     w_contrast, npc_temperature, npc_momentum,
                     ans_select_rate, ans_size, cfg)
    trainer.load_model(load_model)
    auc_score = trainer.test()
    print("AUC score = %.5f" % (auc_score))
def main(dataset_name, net_name, xp_path, data_path, load_model, device, seed,
         lr, n_epochs, batch_size, weight_decay, n_jobs_dataloader, normal_class, isize, rep_dim, k, w_rec, w_feat):

    # Get configuration
    cfg = Config(locals().copy())

    # Set up logging
    if not os.path.exists(xp_path):
        os.mkdir(xp_path)
    logging.basicConfig(level=logging.INFO)
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    log_file = xp_path + '/log.txt'
    file_handler = logging.FileHandler(log_file)
    file_handler.setLevel(logging.INFO)
    file_handler.setFormatter(formatter)
    logger.addHandler(file_handler)

    # Print arguments
    logger.info('Log file is %s.' % log_file)
    logger.info('Data path is %s.' % data_path)
    logger.info('Export path is %s.' % xp_path)

    logger.info('Dataset: %s' % dataset_name)
    logger.info('Normal class: %d' % normal_class)
    logger.info('Network: %s' % net_name)

    # Set seed
    if cfg.settings['seed'] != -1:
        random.seed(cfg.settings['seed'])
        np.random.seed(cfg.settings['seed'])
        torch.manual_seed(cfg.settings['seed'])
        logger.info('Set seed to %d.' % cfg.settings['seed'])

    # Default device to 'cpu' if cuda is not available
    if not torch.cuda.is_available():
        device = 'cpu'
    logger.info('Computation device: %s' % device)
    logger.info('Number of dataloader workers: %d' % n_jobs_dataloader)

    # Log training details
    logger.info('Training learning rate: %g' % cfg.settings['lr'])
    logger.info('Training epochs: %d' % cfg.settings['n_epochs'])
    logger.info('Training batch size: %d' % cfg.settings['batch_size'])
    logger.info('Training weight decay: %g' % cfg.settings['weight_decay'])
    logger.info('Training rep_dim: %d' % cfg.settings['rep_dim'])
    logger.info('Training k: %d' % cfg.settings['k'])
    logger.info('Training reconstruction loss weight: %d' % cfg.settings['w_rec'])
    logger.info('Training feature consistency loss weight: %d' % cfg.settings['w_feat'])

    dataset = load_dataset(dataset_name, data_path, normal_class, isize)
    network = build_network(net_name, rep_dim)
    trainer = Solver(dataset, network, k, lr, n_epochs, batch_size, rep_dim, k, weight_decay, device, n_jobs_dataloader, w_rec, w_feat, cfg)

    trainer.train()
示例#5
0
 def set_embedding(self, dataset, embedding_size=100, pretrained_word_vectors=None, embedding_reduction='mean',
                   use_tfidf_weights=False, normalize_embedding=False, device: str = 'cpu'):
     """Sets the word embedding for the text data."""
     self.embedding = build_network('embedding',
                                    dataset,
                                    embedding_size=embedding_size,
                                    pretrained_model=pretrained_word_vectors,
                                    update_embedding=False,
                                    embedding_reduction=embedding_reduction,
                                    use_tfidf_weights=use_tfidf_weights,
                                    normalize_embedding=normalize_embedding)
     self.embedding = self.embedding.to(device)
示例#6
0
 def set_network(self, net_name):
     """Builds the neural network \phi."""
     self.net_name = net_name
     self.net = build_network(net_name)
示例#7
0
文件: SemiDGM.py 项目: MasaKat0/D3RE
 def set_network(self, net_name):
     """Builds the neural network."""
     self.net_name = net_name
     self.net = build_network(net_name,
                              ae_net=self.vae_net)  # full M1+M2 model
示例#8
0
文件: deepSVDD.py 项目: Csraf/dldm
    def set_network(self, net_name):
        """Builds the neural networks ."""

        self.net_name = net_name
        self.net = build_network(net_name, self.n_code)
示例#9
0
文件: svm.py 项目: Csraf/dldm
    def set_network(self, net_name, n_features=9):
        """Builds the neural networks ."""

        self.net_name = net_name
        self.net = build_network(net_name, n_features=9)
示例#10
0
 def set_network(self, net_name, rep_dim=64, bias_terms=False):
     """Builds the neural network."""
     self.net_name = net_name
     self.net = build_network(net_name,
                              rep_dim=rep_dim,
                              bias_terms=bias_terms)
示例#11
0
 def set_network(self, net_name, rep_dim):
     """Builds the neural network phi."""
     self.net_name = net_name
     self.net = build_network(net_name, rep_dim=rep_dim)