-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun_experiments.py
65 lines (48 loc) · 2.03 KB
/
run_experiments.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
import numpy as np
import datetime
import glob
from sklearn.model_selection import train_test_split
from keras.optimizers import Adam
from keras.models import load_model
from vad_model import VadModel
from dataset import SpectrogramDataGenerator
def start_experiments():
# load and split dataset
x_filenames = sorted(glob.glob('data/dev_set/x_spectrogram_*.npy'))
y_filenames = sorted(glob.glob('data/dev_set/y_*.npy'))
print('number of samples (to split in train/val) =', len(x_filenames))
print(x_filenames[0])
print(y_filenames[0])
X_filename_train, X_filename_val, Y_filename_train, Y_filename_val = train_test_split(
x_filenames, y_filenames, test_size=0.10, random_state=42)
batch_size = 500
training_generator = SpectrogramDataGenerator(X_filename_train, Y_filename_train, batch_size)
val_generator = SpectrogramDataGenerator(X_filename_val, Y_filename_val, batch_size)
#vad = VadModel()lstm_bi_model_architecture_20-11-2018
#vad.model = load_model("models/lstm_bi_20-11-2018_lr_5e-05_drop_0.05_0.05.h5")
dropout_rates = [
[0.25, 0.50, 0.25],
[0.25, 0.50, 0.50],
[0.25, 0.25, 0.80],
#[0.40, 0.60, 0.60],
#[0.60, 0.30, 0.30],
#[0.60, 0.30, 0.30],
#[0.15, 0.50, 0.50],
#[0.15, 0.70, 0.70],
#[0.15, 0.70, 0.30],
#[0.50, 0.50, 0.50],
#[0.30, 0.80, 0.50],
]
units_list = [
{'lstm': 128, 'dense': 256},
]
for dropout_rate in dropout_rates:
for units in units_list:
vad = VadModel(dropout_rates=dropout_rate, lstm_units=units['lstm'], dense_units=units['dense'])
lr_list = [0.00025, 0.00010]
for lr_index, lr in enumerate(lr_list):
opt = Adam(lr=lr, beta_1=0.9, beta_2=0.999, decay=0.01)
experiment_name = vad.train(50, training_generator, val_generator, opt, units, vad, dropout_rate, lr_index)
vad.save('models/{}.h5'.format(experiment_name))
if __name__ == '__main__':
start_experiments()