def train_translation_model(data_dir, extra_flags): parser = train.get_parser_with_args() args = options.parse_args_and_arch(parser, [ "--save-dir", data_dir, "--train-source-text-file", os.path.join(data_dir, "train.in"), "--train-target-text-file", os.path.join(data_dir, "train.out"), "--eval-source-text-file", os.path.join(data_dir, "valid.in"), "--eval-target-text-file", os.path.join(data_dir, "valid.out"), "--source-max-vocab-size", "26", "--target-max-vocab-size", "26", "--max-tokens", "500", "--optimizer", "sgd", "--lr", "0.05", "--lr-scheduler", "fixed", "--lr-shrink", "0.95", "--momentum", "0.0", "--clip-norm", "5.0", "--sentence-avg", "--criterion", "label_smoothed_cross_entropy", "--label-smoothing", "0.1", "--beam", "3", "--stop-no-best-bleu-eval", "5", "--unk-reward", "0.5", "--generate-bleu-eval-avg-checkpoints", "10", "--generate-bleu-eval-per-epoch", "--max-epoch", "1", "--stop-time-hr", "1", "--no-progress-bar", "--distributed-world-size", "1", "--source-lang", "in", "--target-lang", "out", ] + (extra_flags or [])) train.validate_and_set_default_args(args) train.main(args, train.single_process_main)
trainer=trainer, task=task, epoch_itr=epoch_itr, ) for num_updates, stats in train_iterator: if distributed_utils.is_master(args): for k, v in LOGGED_STATS_MAP.items(): if stats[k] is not None: if v == "mid_epoch": tensorboard_logger.log_value(k, float(stats[k]), num_updates) else: tensorboard_logger.log_value(k, float(stats[k]), extra_state["epoch"]) if __name__ == "__main__": parser = train.get_parser_with_args() parser.add_argument( "--tensorboard-dir", type=str, default="run-1234", help= "The log directory for tensorboard, used as `tensorboard --logdir DIR`", ) args = options.parse_args_and_arch(parser) train.validate_and_set_default_args(args) print(args) train.main(args, single_process_tensorboard)
def train_translation_model( data_dir, extra_flags, criterion=None, set_empty_data_positional_arg=False, set_lang_args=True, ): parser = train.get_parser_with_args() args = options.parse_args_and_arch( parser, ([""] if set_empty_data_positional_arg else []) + [ "--save-dir", data_dir, "--train-source-text-file", os.path.join(data_dir, "train.in"), "--train-target-text-file", os.path.join(data_dir, "train.out"), "--eval-source-text-file", os.path.join(data_dir, "valid.in"), "--eval-target-text-file", os.path.join(data_dir, "valid.out"), "--source-max-vocab-size", "26", "--target-max-vocab-size", "26", "--max-tokens", "500", "--optimizer", "sgd", "--lr", "0.05", "--lr-scheduler", "fixed", "--lr-shrink", "0.95", "--momentum", "0.0", "--clip-norm", "5.0", "--sentence-avg", "--beam", "3", "--stop-no-best-bleu-eval", "5", "--unk-reward", "0.5", "--num-avg-checkpoints", "10", "--max-epoch", "1", "--stop-time-hr", "1", "--no-progress-bar", "--distributed-world-size", "1", "--local-num-gpus", "1" if torch.cuda.device_count() >= 1 else "0", ] + (["--source-lang", "in", "--target-lang", "out"] if set_lang_args else []) + (extra_flags or []) + ( criterion or [ "--criterion", "label_smoothed_cross_entropy", "--label-smoothing", "0.1", ] ), ) train.validate_and_set_default_args(args) train.main(args)