Source code for soft_search.bin.fit_and_eval_all_models

#!/usr/bin/env python

import argparse
import logging
import sys
import traceback

from soft_search.label.model_selection import fit_and_eval_all_models

###############################################################################


[docs] class Args(argparse.Namespace): def __init__(self) -> None: self.__parse() def __parse(self) -> None: p = argparse.ArgumentParser( prog="fit-and-eval-all-soft-search-2022-models", description=( "Train and evaluate all the different models with " "the soft search 2022 dataset." ), ) p.add_argument( "-t", "--test-size", dest="test_size", type=float, default=0.2, help="Test size to use for data splits.", ) p.add_argument("-s", "--seed", type=int, default=0, help="Random seed.") p.add_argument( "-a", "--archive", dest="archive", action="store_true", help="Archive tfidf-logit (usually the best performing) models.", ) p.add_argument( "--no-transformer", dest="no_transformer", action="store_true", help="Do not train and evalute the fine-tuned transformer.", ) p.add_argument( "--debug", dest="debug", action="store_true", help="Run with debug logging.", ) p.parse_args(namespace=self)
###############################################################################
[docs] def main() -> None: # Get args args = Args() # Determine log level if args.debug: log_level = logging.DEBUG else: log_level = logging.INFO # Setup logging logging.basicConfig( level=log_level, format="[%(levelname)4s: %(module)s:%(lineno)4s %(asctime)s] %(message)s", ) log = logging.getLogger(__name__) # Try training and storage try: results = fit_and_eval_all_models( test_size=args.test_size, seed=args.seed, archive=args.archive, train_transformer=not args.no_transformer, ) print(results) except Exception as e: log.error("=============================================") log.error("\n\n" + traceback.format_exc()) log.error("=============================================") log.error("\n\n" + str(e) + "\n") log.error("=============================================") sys.exit(1)
############################################################################### # Allow caller to directly run this module (usually in development scenarios) if __name__ == "__main__": main()