Skip to content

Commit 1bbaea3

Browse files
committed
simplify dropout in convolutional architecture
1 parent 3a078b9 commit 1bbaea3

File tree

9 files changed

+28
-40
lines changed

9 files changed

+28
-40
lines changed

src/convolutional.py

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,7 @@ def model_parameters(time_units, freq_units, time_scale, freq_scale):
189189
["nconvlayers", "# conv layers", '', '2', 1, [], nlayers_callback, True],
190190
["kernel_sizes", "kernels", '', '5x5,3', 1, [], None, True],
191191
["nfeatures", "# features", '', '64,64', 1, [], None, True],
192-
["dropout_kind", "dropout kind", ['none',
193-
'unit'], 'unit', 1, [], None, True],
194-
["dropout_rate", "dropout %", '', '50', 1, ["dropout_kind",
195-
["unit",
196-
"map"]], None, True],
192+
["dropout", "dropout %", '', '50', 1, [], None, True],
197193
["normalization", "normalization", ['none',
198194
'batch before ReLU',
199195
'batch after ReLU'], 'none', 1, [], None, True],
@@ -388,12 +384,7 @@ def create_model(model_settings, model_parameters, io=sys.stdout):
388384
dilate_time = parse_layers(model_parameters['dilate_time'], nconvlayers)
389385
dilate_freq = parse_layers(model_parameters['dilate_freq'], nconvlayers)
390386
use_residual = model_parameters['connection_type']=='residual'
391-
dropout_rate = float(model_parameters['dropout_rate'])/100
392-
if model_parameters['dropout_kind']=='unit':
393-
dropout_kind = Dropout
394-
else:
395-
def Identity(x): return lambda x: x
396-
dropout_kind = Identity
387+
dropout = float(model_parameters['dropout'])/100
397388
if model_parameters['pool_kind']=='max':
398389
pool_kind = MaxPool2D
399390
elif model_parameters['pool_kind']=='average':
@@ -543,7 +534,8 @@ def Identity(x): return lambda x: x
543534
print("receptive_field_freq = %d bins = %f %s" % (receptive_field[1],
544535
receptive_field[1] * audio_tic_rate / window_tics / freq_scale, freq_units), file=io)
545536

546-
x = dropout_kind(dropout_rate)(x)
537+
if dropout>0:
538+
x = Dropout(dropout)(x)
547539

548540
if pool_kind:
549541
x = pool_kind(pool_size=pool_size, strides=pool_size)(x)
@@ -553,8 +545,9 @@ def Identity(x): return lambda x: x
553545
# final dense layers (or actually, pan-freq pan-time 2D convs)
554546
for idense, nunits in enumerate(denselayers+[model_settings['nlabels']]):
555547
if idense>0:
556-
relu = ReLU()(x)
557-
x = dropout_kind(dropout_rate)(relu)
548+
x = ReLU()(x)
549+
if dropout>0:
550+
x = Dropout(dropout)(x)
558551
x = Conv2D(nunits, (noutput_tics if idense==0 else 1, x_shape[2]))(x)
559552
hidden_layers.append(conv)
560553
x_shape = x.get_shape().as_list()

src/ensemble-concat-dense.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
'both',
2525
'neither'], 'neither', 1, [], None, False],
2626
["dense_layers", "dense", '', '', 1, [], None, False],
27-
["dropout_rate", "dropout %", '', '0', 1, [], None, True],
27+
["dropout", "dropout %", '', '0', 1, [], None, True],
2828
]
2929

3030
def load_model(model_settings, ckpt):
@@ -69,7 +69,7 @@ def create_model(model_settings, model_parameters):
6969
trainable = model_parameters['trainable']
7070
dense_layers = [] if model_parameters['dense_layers']=='' \
7171
else [int(x) for x in model_parameters['dense_layers'].split(',')]
72-
dropout_rate = float(model_parameters['dropout_rate'])/100
72+
dropout = float(model_parameters['dropout'])/100
7373

7474
hidden_layers = []
7575

@@ -88,8 +88,8 @@ def create_model(model_settings, model_parameters):
8888
for idense, nunits in enumerate(dense_layers+[model_settings['nlabels']]):
8989
if idense>0:
9090
x = ReLU()(x)
91-
if dropout_rate>0:
92-
x = Dropout(dropout_rate)(x)
91+
if dropout>0:
92+
x = Dropout(dropout)(x)
9393
x = Conv1D(nunits, 1)(x)
9494
hidden_layers.append(x)
9595

src/ensemble-transfer.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,12 @@
2222

2323
model_parameters = [
2424
# key, title in GUI, '' for textbox or [] for pull-down, default value, width, enable logic, callback, required
25-
["ckpt_files", "checkpoint file(s)", '', '', 6, [], None, True],
26-
["trainable", "trainable?", '', '', 1, [], None, False],
27-
["splice_layers", "layer(s)", '', '', 1, [], None, False],
28-
["conv_layers", "conv", '', '', 2, [], None, False],
29-
["dense_layers", "dense", '', '', 1, [], None, False],
30-
["dropout_rate", "dropout %", '', '0', 1, [], None, True],
25+
["ckpt_files", "checkpoint file(s)", '', '', 6, [], None, True],
26+
["trainable", "trainable?", '', '', 1, [], None, False],
27+
["splice_layers", "layer(s)", '', '', 1, [], None, False],
28+
["conv_layers", "conv", '', '', 2, [], None, False],
29+
["dense_layers", "dense", '', '', 1, [], None, False],
30+
["dropout", "dropout %", '', '50', 1, [], None, True],
3131
]
3232

3333
def load_model(context0, audio_tic_rate0, parallelize0, ckpt_file, io):
@@ -155,7 +155,7 @@ def create_model(model_settings, model_parameters, io=sys.stdout):
155155
for x in model_parameters['conv_layers'].split(',')]
156156
dense_layers = [] if model_parameters['dense_layers']=='' \
157157
else [int(x) for x in model_parameters['dense_layers'].split(',')]
158-
dropout_rate = float(model_parameters['dropout_rate'])/100
158+
dropout = float(model_parameters['dropout'])/100
159159

160160
hidden_layers = []
161161

@@ -190,8 +190,8 @@ def create_model(model_settings, model_parameters, io=sys.stdout):
190190
if fs==model_settings['audio_tic_rate']:
191191
x = Identity()
192192
else:
193-
l = Resample(model_settings['audio_tic_rate'], fs)
194-
x = l(inputs)
193+
x = Resample(model_settings['audio_tic_rate'], fs)
194+
x = x(inputs)
195195
x = m(x)
196196
hidden_layers.extend(x[0])
197197
lowerlegs.append(tf.keras.Model(inputs=inputs, outputs=x[1]))
@@ -210,8 +210,8 @@ def create_model(model_settings, model_parameters, io=sys.stdout):
210210
for idense, nunits in enumerate(dense_layers+[model_settings['nlabels']]):
211211
if idense>0:
212212
x = ReLU()(x)
213-
if dropout_rate>0:
214-
x = Dropout(dropout_rate)(x)
213+
if dropout>0:
214+
x = Dropout(dropout)(x)
215215
x = Conv1D(nunits, 1)(x)
216216
hidden_layers.append(x)
217217

test/freeze-classify.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@
4646
V.shiftby.value = "0.0"
4747
V.optimizer.value = "Adam"
4848
V.learning_rate.value = "0.0002"
49-
V.model_parameters["dropout_kind"].value = "unit"
50-
V.model_parameters["dropout_rate"].value = "50"
49+
V.model_parameters["dropout"].value = "50"
5150
V.model_parameters["augment_volume"].value = "1,1"
5251
V.model_parameters["augment_noise"].value = "0,0"
5352
V.model_parameters["normalization"].value = "none"

test/seeds.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@
4343
V.shiftby.value = "0.0"
4444
V.optimizer.value = "Adam"
4545
V.learning_rate.value = "0.0002"
46-
V.model_parameters["dropout_kind"].value = "unit"
47-
V.model_parameters["dropout_rate"].value = "50"
46+
V.model_parameters["dropout"].value = "50"
4847
V.model_parameters["augment_volume"].value = "1,1"
4948
V.model_parameters["augment_noise"].value = "0,0"
5049
V.model_parameters["normalization"].value = "none"

test/shiftby.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@
4747
"nconvlayers": "2", \
4848
"kernel_sizes": "3x3,32", \
4949
"nfeatures": "8,8", \
50-
"dropout_kind": "unit", \
51-
"dropout_rate": "50", \
50+
"dropout": "50", \
5251
"normalization": "none", \
5352
"stride_time": "2", \
5453
"stride_freq": "", \

test/tutorial.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,7 @@
6565
V.shiftby.value = "0.0"
6666
V.optimizer.value = "Adam"
6767
V.learning_rate.value = "0.0002"
68-
V.model_parameters["dropout_kind"].value = "unit"
69-
V.model_parameters["dropout_rate"].value = "50"
68+
V.model_parameters["dropout"].value = "50"
7069
V.model_parameters["augment_volume"].value = "1,1"
7170
V.model_parameters["augment_noise"].value = "0,0"
7271
V.model_parameters["normalization"].value = "none"

test/tutorial.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ shiftby=0.0
7474
optimizer=Adam
7575
learning_rate=0.0002
7676
architecture=convolutional
77-
model_parameters='{"representation":"mel-cepstrum","window":"6.4","stride":"1.6","mel_dct":"7,7","range":"","dropout_kind":"unit","dropout_rate":"50","augment_volume":"1,1","augment_noise":"0,0","normalization":"none","kernel_sizes":"5x5,3","nconvlayers":"2","denselayers":"","nfeatures":"64,64","stride_time":"","stride_freq":"","dilate_time":"","dilate_freq":"","pool_kind":"none","pool_size":"","connection_type":"plain"}'
77+
model_parameters='{"representation":"mel-cepstrum","window":"6.4","stride":"1.6","mel_dct":"7,7","range":"","dropout":"50","augment_volume":"1,1","augment_noise":"0,0","normalization":"none","kernel_sizes":"5x5,3","nconvlayers":"2","denselayers":"","nfeatures":"64,64","stride_time":"","stride_freq":"","dilate_time":"","dilate_freq":"","pool_kind":"none","pool_size":"","connection_type":"plain"}'
7878
logdir=$repo_path/test/scratch/tutorial-sh/trained-classifier1
7979
data_dir=$repo_path/test/scratch/tutorial-sh/groundtruth-data
8080
labels_touse=mel-pulse,mel-sine,ambient

test/visualization.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,7 @@
5858
V.shiftby.value = "0.0"
5959
V.optimizer.value = "Adam"
6060
V.learning_rate.value = "0.0002"
61-
V.model_parameters["dropout_kind"].value = "unit"
62-
V.model_parameters["dropout_rate"].value = "50"
61+
V.model_parameters["dropout"].value = "50"
6362
V.model_parameters["augment_volume"].value = "1,1"
6463
V.model_parameters["augment_noise"].value = "0,0"
6564
V.model_parameters["normalization"].value = "none"

0 commit comments

Comments
 (0)