def build_MTLtrainer(args, device_id, model, optims, optims_inner, loss): """Builds the trainer class for MTL Args: device_id (int): the GPU id to be used model (models.model_builder.MTLAbsSummarizer') optims (list[models.optimizers.Optimizer]) optims_inner (list[models.optimizer.Optimizer]) loss (models.loss.NMTLossCompute) Returns: A object in type pipelines.trainer_abs_mtl.MTLTrainer. """ device = "cpu" if args.visible_gpus == '-1' else "cuda" grad_accum_count = args.accum_count n_gpu = args.world_size if device_id >= 0: gpu_rank = int(args.gpu_ranks[device_id]) else: gpu_rank = 0 n_gpu = 0 print('gpu_rank %d' % gpu_rank) # Prepare tensorborad writer writer = SummaryWriter(args.log_path, comment="Unmt") # Prepare report manager report_manager = ReportMgr(args.report_every, start_time=-1, tensorboard_writer=writer) report_inner_manager = ReportMgr(args.report_inner_every, start_time=-1, tensorboard_writer=writer) # Prepare trainer trainer = MTLTrainer(args, model, optims, optims_inner, loss, grad_accum_count, n_gpu, gpu_rank, report_manager, report_inner_manager) # Show # of (trainable) parameters if (model): n_params = _tally_parameters(model) trainable_n_params = _tally_trainable_parameters(model) logger.info('Number of parameters: %d' % n_params) logger.info('Number of trainalbe parameters: %d' % trainable_n_params) return trainer
def build_trainer(args, device_id, model, optims, tokenizer): """ Simplify `Trainer` creation based on user `opt`s* Args: opt (:obj:`Namespace`): user options (usually from argument parsing) model (:obj:`onmt.models.NMTModel`): the model to train fields (dict): dict of fields optim (:obj:`onmt.utils.Optimizer`): optimizer used during training data_type (str): string describing the type of data e.g. "text", "img", "audio" model_saver(:obj:`onmt.models.ModelSaverBase`): the utility object used to save the model """ device = "cpu" if args.visible_gpus == '-1' else "cuda" grad_accum_count = args.accum_count n_gpu = args.world_size if device_id >= 0: gpu_rank = int(args.gpu_ranks[device_id]) else: gpu_rank = 0 n_gpu = 0 print('gpu_rank %d' % gpu_rank) tensorboard_log_dir = args.model_path writer = SummaryWriter(tensorboard_log_dir, comment="Unmt") report_manager = ReportMgr(args.report_every, start_time=-1, tensorboard_writer=writer) symbols = { 'BOS': tokenizer.vocab['[unused1]'], 'EOS': tokenizer.vocab['[unused2]'], 'PAD': tokenizer.vocab['[PAD]'], 'SEG': tokenizer.vocab['[unused3]'], 'UNK': tokenizer.vocab['[UNK]'] } gen_loss = abs_loss(args, model.generator, symbols, tokenizer.vocab, device, train=True) pn_loss = CrossEntropyLossCompute().to(device) trainer = Trainer(args, model, optims, tokenizer, gen_loss, pn_loss, grad_accum_count, n_gpu, gpu_rank, report_manager) # print(tr) if (model): n_params = _tally_parameters(model) logger.info('* number of parameters: %d' % n_params) return trainer
def build_trainer(args, model, optim): gpu_rank = 0 print('gpu_rank %d' % gpu_rank) report_manager = ReportMgr(args.report_every, start_time=-1) trainer = Trainer(args, model, optim, report_manager) return trainer
def build_trainer(args, device_id, model, optims, loss): """ Simplify `Trainer` creation based on user `opt`s* Args: opt (:obj:`Namespace`): user options (usually from argument parsing) model (:obj:`onmt.models.NMTModel`): the model to train fields (dict): dict of fields optim (:obj:`onmt.utils.Optimizer`): optimizer used during training data_type (str): string describing the type of data e.g. "text", "img", "audio" model_saver(:obj:`onmt.models.ModelSaverBase`): the utility object used to save the model """ device = "cpu" if args.visible_gpus == '-1' else "cuda" grad_accum_count = args.accum_count n_gpu = args.world_size if device_id >= 0: gpu_rank = int(args.gpu_ranks[device_id]) else: gpu_rank = 0 n_gpu = 0 print('gpu_rank %d' % gpu_rank) report_manager = None if not args.debug: tensorboard_log_dir = args.model_path writer = SummaryWriter(tensorboard_log_dir, comment="Unmt") report_manager = ReportMgr(args.report_every, start_time=-1, tensorboard_writer=writer) trainer = Trainer(args, model, optims, loss, grad_accum_count, n_gpu, gpu_rank, report_manager) # print(tr) if (model): n_params = _tally_parameters(model) logger.info('* number of parameters: %d' % n_params) return trainer
def build_trainer(args, device_id, model, optims,loss): device = "cpu" if args.visible_gpus == '-1' else "cuda" grad_accum_count = args.accum_count n_gpu = args.world_size if device_id >= 0: gpu_rank = int(args.gpu_ranks[device_id]) else: gpu_rank = 0 n_gpu = 0 print('gpu_rank %d' % gpu_rank) tensorboard_log_dir = args.model_path writer = SummaryWriter(tensorboard_log_dir, comment="Unmt") report_manager = ReportMgr(args.report_every, start_time=-1, tensorboard_writer=writer) trainer = Trainer(args, model, optims, loss, grad_accum_count, n_gpu, gpu_rank, report_manager) if (model): n_params = _tally_parameters(model) logger.info('* number of parameters: %d' % n_params) return trainer
def build_trainer(args, device_id, model, optim): grad_accum_count = args.accum_count n_gpu = 1 if device_id < 0: n_gpu = 0 gpu_rank = 0 tensorboard_log_dir = args.model_path writer = SummaryWriter(tensorboard_log_dir, comment="Unmt") report_manager = ReportMgr(args.report_every, start_time=-1, tensorboard_writer=writer) trainer = Trainer(args, model, optim, grad_accum_count, n_gpu, gpu_rank, report_manager) n_params, enc, dec = _tally_parameters(model) logger.info('encoder: %d' % enc) logger.info('decoder: %d' % dec) logger.info('* number of parameters: %d' % n_params) return trainer