def TimeDelayNeuralNetwork(n_nodes, conv_len, n_classes, n_feat, max_len,
loss='categorical_crossentropy', causal=False,
optimizer="rmsprop", activation='sigmoid',
return_param_str=False):
# Time-delay neural network
n_layers = len(n_nodes)
inputs = Input(shape=(max_len,n_feat))
model = inputs
inputs_mask = Input(shape=(max_len,1))
model_masks = [inputs_mask]
# ---- Encoder ----
for i in range(n_layers):
# Pad beginning of sequence to prevent usage of future data
if causal: model = ZeroPadding1D((conv_len//2,0))(model)
model = AtrousConvolution1D(n_nodes[i], conv_len, atrous_rate=i+1, border_mode='same')(model)
# model = SpatialDropout1D(0.3)(model)
if causal: model = Cropping1D((0,conv_len//2))(model)
if activation=='norm_relu':
model = Activation('relu')(model)
model = Lambda(channel_normalization, name="encoder_norm_{}".format(i))(model)
elif activation=='wavenet':
model = WaveNet_activation(model)
else:
model = Activation(activation)(model)
# Output FC layer
model = TimeDistributed(Dense(n_classes, activation="softmax"))(model)
model = Model(input=inputs, output=model)
model.compile(loss=loss, optimizer=optimizer, sample_weight_mode="temporal", metrics=['accuracy'])
if return_param_str:
param_str = "TDN_C{}".format(conv_len)
if causal:
param_str += "_causal"
return model, param_str
else:
return model
tf_models.py 文件源码
python
阅读 29
收藏 0
点赞 0
评论 0
评论列表
文章目录