import json import sys import time import architectures import data_loaders from utils import Hp, get_optimizer, get_hyperparameters from train_test import train_and_test # Load all hyperparameter permutations if len(sys.argv)>1: hyperparameter_list_name = sys.argv[1] else: hyperparameter_list_name = 'JSB Chorales' time_start = time.time() for hyperparameters in get_hyperparameters(hyperparameter_list_name): # Run experiment for each hyperparameter Hp.set_hyperparameters(hyperparameters) train_loader, test_loader = data_loaders.get_dataset() model = architectures.get_model() optimizer = get_optimizer(model) results = train_and_test(train_loader, test_loader, model, optimizer) # Save experiment in a dictionary and dump as a json with open(Hp.get_experiment_name(), 'w') as f: experiment_dict = {'hyperparameters': hyperparameters, 'results': results} json.dump(experiment_dict, f, indent=2) # Print how long it took to run the algorithm
DEVICE = torch.device("cuda") print(DEVICE) data = trim_entity_spans(convert_goldparse('data/Resumes.json')) total = len(data) train_data, val_data = data[:180], data[180:] train_d = ResumeDataset(train_data, TOKENIZER, tag2idx, MAX_LEN) val_d = ResumeDataset(val_data, TOKENIZER, tag2idx, MAX_LEN) train_sampler = RandomSampler(train_d) train_dl = DataLoader(train_d, sampler=train_sampler, batch_size=8) val_dl = DataLoader(val_d, batch_size=4) #model = BertForTokenClassification.from_pretrained(MODEL_NAME, num_labels=len(tag2idx)) model = LongformerForTokenClassification.from_pretrained( MODEL_NAME, num_labels=len(tag2idx)) model.to(DEVICE) optimizer_grouped_parameters = get_hyperparameters(model, True) optimizer = Adam(optimizer_grouped_parameters, lr=3e-5) train_and_val_model(model, TOKENIZER, optimizer, EPOCHS, idx2tag, tag2idx, MAX_GRAD_NORM, DEVICE, train_dl, val_dl) torch.save( {"model_state_dict": model.state_dict()}, f'{output_path}/model-state.bin', )
# import tensorflow as tf # tf.config.gpu.set_per_process_memory_fraction(.6) # tf.config.gpu.set_per_process_memory_growth(True) parser = argparse.ArgumentParser() parser.add_argument( "-t", "--task", type=str, default="3a", help="Please enter tasks' numbers in a string separated by comma") args = parser.parse_args() tasks = args.task.split(',') for task in tasks: hyperparameters = get_hyperparameters(task) hyperparameters = hyperparameters_processing(hyperparameters) folds = get_folds(hyperparameters) autocontext_step = hyperparameters['autocontext_step'] model_predictions = [None] * len( os.listdir( os.path.join(os.getcwd(), os.path.join(hyperparameters['data_path'], 'Image')))) for s_step in range(0, autocontext_step): folds = get_folds(hyperparameters) for fold_num, fold in enumerate(folds): train_images, train_masks, validation_images, validation_masks = fold print("train images", train_images) train_data_gen, test_data_gen = get_data_with_generator_on_the_fly( hyperparameters, train_images, train_masks, validation_images, validation_masks, s_step, fold_num, len(validation_images))