| from src.config import * |
| from src.dataset import NoteEncoder, seq2seq_dataset |
| from src.model import get_model |
| from src.trainer import train_model |
| from src.utils import get_dataset_path |
| import keras |
| import os |
|
|
| |
| ROOT_DIR = os.getcwd() |
| TRAIN_PATH, VAL_PATH, ARTIFACTS_PATH, MODEL_PATH = get_dataset_path(ROOT_DIR, URL) |
|
|
| |
| keras.utils.set_random_seed(SEED) |
|
|
| |
| note2id, id2note, vocab = NoteEncoder(samples_path=TRAIN_PATH, vocab_path=ARTIFACTS_PATH) |
| vocab_size = len(vocab) |
|
|
| train = seq2seq_dataset(TRAIN_PATH + "/*.csv",note2id, seq_len=SEQ_LEN, window_shift=WINDOW_SHIFT, |
| batch_size=BATCH_SIZE, shuffle_buffer=2500, seed=SEED) |
|
|
| val = seq2seq_dataset(VAL_PATH + "/*.csv" ,note2id, seq_len=SEQ_LEN, window_shift=WINDOW_SHIFT, |
| batch_size=BATCH_SIZE, shuffle_buffer=None) |
|
|
| bach_model = get_model(lr= LEARNING_RATE, weight_decay= WEIGHT_DECAY, |
| emb_in = vocab_size, emb_out = EMBEDDING_DIM, |
| lstm_layers = LSTM_LAYERS, lstm_units = LSTM_UNITS, |
| lstm_dropout = LSTM_DROPOUT, dense_units = DENSE_UNITS, |
| dropout = DROPOUT) |
|
|
| |
| train_model(bach_model, train, val, N_EPOCHS, ARTIFACTS_PATH, MODEL_PATH) |