def main()

in pplbench/main.py [0:0]


def main(args: Optional[List[str]] = None) -> None:
    # first load the configuration, start logging and find all needed classes
    config = read_config(args)
    output_dir = utils.create_output_dir(config)
    configure_logging(config, output_dir)
    model_cls = model_helper.find_model_class(config.model)
    all_ppl_details = ppl_helper.find_ppl_details(config)
    # then start the actual benchmarking run
    train_data, test_data = model_helper.simulate_data(config.model, model_cls)
    (
        all_variable_metrics_data,
        all_other_metrics_data,
    ) = ppl_helper.collect_samples_and_stats(
        config, model_cls, all_ppl_details, train_data, test_data, output_dir
    )
    # finally, output charts
    reports.generate_plots(
        output_dir,
        config,
        all_ppl_details,
        all_variable_metrics_data,
        all_other_metrics_data,
    )
    # The last output should be the name of the directory
    LOGGER.info(f"Output saved in '{output_dir}'")