Ejemplo n.º 1
0
filename = dataset.dname + '_' + config_name + '.json'

print(f"############## {dataset.dname} ##############", flush=True)
tga = TGA(n_epochs=50,
          lr=lr,
          train_batch_size=bs,
          w=w,
          n_heads=nh,
          weight_decay=l2,
          device=f"cuda:{args.cuda}",
          pretrained_vec=
          '/home/mangaravite/Documents/pretrained_vectors/glove.6B.300d.txt',
          verbose=True)
params = tga.get_params()
folds = []
for f, fold in enumerate(dataset.get_fold_instances(10)):
    print(f"Fold {f}", flush=True)
    tga.fit(fold.X_train, fold.y_train, fold.X_val, fold.y_val)
    y_pred = tga.predict(fold.X_test)
    correct = sum([p == l for (p, l) in zip(y_pred, fold.y_test)])
    total = len(fold.X_test)
    fold_out = {
        'y_pred': list(map(int, list(y_pred))),
        'y_test': list(map(int, list(fold.y_test))),
        'epochs_acc': list(tga.checkpoints),
        'model': tga.path_to_save
    }
    folds.append(fold_out)
    print(f"END FOLD: ACC={(correct/total):.4f}")
    params['folds'] = folds
    with open(filename, 'w') as outfile:
Ejemplo n.º 2
0
d = Dataset(sys.argv[1])

path_result = path.join('result', d.dname)
if not path.exists(path_result):
    mkdir(path_result)

space = {
    "batch_size": hp.quniform("batch_size", 8, 128, 32),
    "k": hp.quniform("k", 64, 512, 64),
    "max_drop": hp.uniform("max_drop", 0.3, 0.9),
    "mindf": hp.quniform("mindf", 2, 4, 1),
    "stopwords": hp.choice("stopwords", ["nltk", "sklearn", None]),
}

for (i, fold) in enumerate(d.get_fold_instances(10, with_val=True)):

    def hyperparameter_tuning_try(params):
        try:
            class_att = AttentionTFIDFClassifier(**params,
                                                 nepochs=25,
                                                 _verbose=False)
            print(class_att)
            class_att.fit(fold.X_train, fold.y_train, fold.X_val, fold.y_val)
            return {
                "loss": class_att._loss,
                "status": STATUS_OK,
                "model": class_att.to('cpu')
            }
        except:
            return {"status": STATUS_FAIL}