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:
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}