Esempio n. 1
0
def main():
    if len(sys.argv) <= 2:
        print(
            "please specify a number of examples and a model name (e.g. models.baseline.random_handle)"
        )
        sys.exit(1)

    eval_set_size = int(sys.argv[1])
    module_name = sys.argv[2]

    # splitting training data
    print("splitting training data into", eval_set_size,
          "(test) v. rest (train)")
    data.load_train()
    tweets = np.array(data.TRAIN)
    np.random.seed(SEED)
    np.random.shuffle(tweets)
    test_tweets, train_tweets = tweets[:eval_set_size], tweets[eval_set_size:]

    hyper_parameters = models.parse_hyper_parameters(sys.argv[3:])
    model_class = importlib.import_module(module_name).Model
    print("Model:", module_name, hyper_parameters)

    print("Training...")
    model = model_class(tqdm(train_tweets, dynamic_ncols=True),
                        **hyper_parameters)
    print("Evaluating...")
    accuracy, correct, tests = eval.evaluate(
        model, tqdm(test_tweets, dynamic_ncols=True))
    print(f"Label accuracy: {correct}/{tests} ({accuracy:%})")
Esempio n. 2
0
def main():
    if len(sys.argv) <= 1:
        print(
            "please specify a model name (e.g. models.baseline.random_handle)")
        sys.exit(1)
    module_name = sys.argv[1]
    hyper_parameters = models.parse_hyper_parameters(sys.argv[2:])
    model = models.load(module_name, hyper_parameters)

    data.load_devel1000()

    print("Model:", module_name, hyper_parameters)

    accuracy, correct, tests = evaluate(
        model, tqdm(data.DEVEL1000, dynamic_ncols=True))

    print(f"Label accuracy: {correct}/{tests} ({accuracy:%})")
Esempio n. 3
0
def main():
    if len(sys.argv) <= 1:
        print(
            "please specify a model name (e.g. models.baseline.random_handle)")
        sys.exit(1)
    module_name = sys.argv[1]
    hyper_parameters = models.parse_hyper_parameters(sys.argv[2:])
    model_class = importlib.import_module(module_name).Model
    print("Model:", module_name, hyper_parameters)

    print("Training...")
    model = model_class(tqdm(data.TRAIN, dynamic_ncols=True),
                        **hyper_parameters)
    print("Evaluating...")
    accuracy, correct, tests = eval.evaluate(
        model, tqdm(data.DEVEL, dynamic_ncols=True))
    print(f"Label accuracy: {correct}/{tests} ({accuracy:%})")
Esempio n. 4
0
def main():
    # interpret command line arguments
    if len(sys.argv) <= 1:
        print(
            "please specify a model name (e.g. models.baseline.random_handle)")
        sys.exit(1)
    module_name = sys.argv[1]
    hyper_parameters = models.parse_hyper_parameters(sys.argv[2:])

    # training model
    module = importlib.import_module(module_name)
    print(
        f"Training {module_name}.Model with hyperparameters {hyper_parameters}"
    )
    model = module.Model(tqdm(data.TRAIN, dynamic_ncols=True),
                         **hyper_parameters)
    print("Training done!")

    models.save(model, module_name, hyper_parameters)
Esempio n. 5
0
def main():
    if len(sys.argv) <= 1:
        print(
            "please specify a model name (e.g. models.baseline.random_handle)")
        sys.exit(1)
    module_name = sys.argv[1]
    hyper_parameters = models.parse_hyper_parameters(sys.argv[2:])
    model_class = importlib.import_module(module_name).Model
    print("Model:", module_name, hyper_parameters)

    print("Training on ALL of the training data...")
    model = model_class(tqdm(data.ALL_TRAIN, dynamic_ncols=True),
                        **hyper_parameters)
    print("Labelling unlabelled tweets...")
    for tweet in tqdm(data.TEST, dynamic_ncols=True):
        tweet.handle = model.predict(tweet)

    print("Saving submission...")
    current_time = time.strftime('%m-%d_%H-%M-%S')
    model_name = models.model_name(module_name, hyper_parameters)
    filename = f"../submissions/submission-{current_time}-{model_name}.csv"
    data.export(filename, data.TEST)
    print("Saved to:", filename)