示例#1
0
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
示例#2
0
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',
)
示例#3
0
# 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))