""" Training script to train a model on only SNLI data. MultiNLI data is loaded into the embeddings enabling us to test the model on MultiNLI data. """ import tensorflow as tf import os import importlib import random from util import logger import util.parameters as params from util.data_processing import * from util.evaluate import * FIXED_PARAMETERS = params.load_parameters() modname = FIXED_PARAMETERS["model_name"] logpath = os.path.join(FIXED_PARAMETERS["log_path"], modname) + ".log" logger = logger.Logger(logpath) model = FIXED_PARAMETERS["model_type"] module = importlib.import_module(".".join(['models', model])) MyModel = getattr(module, 'MyModel') # Logging parameter settings at each launch of training script # This will help ensure nothing goes awry in reloading a model and we consistenyl use the same hyperparameter settings. logger.Log("FIXED_PARAMETERS\n %s" % FIXED_PARAMETERS) ######################### LOAD DATA ############################# logger.Log("Loading data") training_snli = load_nli_data(FIXED_PARAMETERS["training_snli"], snli=True)
The "alpha" hyperparamaters set in paramaters.py determines if SNLI data is used in training. If alpha = 0, no SNLI data is used in training. If alpha > 0, then down-sampled SNLI data is used in training. """ import tensorflow as tf import os import importlib import random from util import logger import util.parameters as params from util.data_processing import * from util.evaluate import * from tqdm import tqdm import gzip import pickle FIXED_PARAMETERS, config = params.load_parameters() modname = FIXED_PARAMETERS["model_name"] if not os.path.exists(FIXED_PARAMETERS["log_path"]): os.makedirs(FIXED_PARAMETERS["log_path"]) if not os.path.exists(config.tbpath): os.makedirs(config.tbpath) config.tbpath = FIXED_PARAMETERS["log_path"] if config.test: logpath = os.path.join(FIXED_PARAMETERS["log_path"], modname) + "_test.log" else: logpath = os.path.join(FIXED_PARAMETERS["log_path"], modname) + ".log" logger = logger.Logger(logpath) model = FIXED_PARAMETERS["model_type"]
from command.support import do_support from command.init import do_init from command.run import do_run try: command, *args = handle_command_line() except CommandLineError as e: logger.error(e) logger.info('Type `python {} help` for usage'.format(sys.argv[0])) sys.exit(1) if command == 'help': do_help() try: if command == 'support': params = load_parameters() do_support(params, args[0], args[1]) else: pine_fname, pine_str, params = args if command == 'init': params = load_parameters(params) do_init(params, pine_fname, pine_str) elif command == 'run': params = load_parameters(params, pine_fname) enable_logfile(pine_fname, params) logger.info(f"=== {BOT_NAME} ver.{VERSION} start ===") do_run(params, pine_fname, pine_str) except Exception as e: logger.critical("fail to execute '%s: %s", command, e, exc_info=e) sys.exit(1)