Esempio n. 1
0
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)
Esempio n. 2
0
        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)
Esempio n. 3
0
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)