Download train.py from hoom4n/BachNet: direct link, hf CLI and curl.
- Browser
- Download file 1.32 kB
-
https://huggingface.co/spaces/hoom4n/BachNet/resolve/main/train.py
- Command line
-
hf download hf://spaces/hoom4n/BachNet/train.py
-
curl -L -o train.py https://huggingface.co/spaces/hoom4n/BachNet/resolve/main/train.py
1.32 kB
| 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 | |
| ### DOWNLOAD DATASET ### | |
| ROOT_DIR = os.getcwd() | |
| TRAIN_PATH, VAL_PATH, ARTIFACTS_PATH, MODEL_PATH = get_dataset_path(ROOT_DIR, URL) | |
| ### REPRODUCABILITY ### | |
| keras.utils.set_random_seed(SEED) | |
| ### INITIALIZE MODEL & DATASET ### | |
| 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) | |
| ### TRAINER ### | |
| train_model(bach_model, train, val, N_EPOCHS, ARTIFACTS_PATH, MODEL_PATH) |