def rnn_layers(features, sequence_length, num_classes):
"""Build a stack of RNN layers from input features"""
# Input features is [batchSize paddedSeqLen numFeatures]
logit_activation = tf.nn.relu
weight_initializer = tf.contrib.layers.variance_scaling_initializer()
bias_initializer = tf.constant_initializer(value=0.0)
with tf.variable_scope("rnn"):
# Transpose to time-major order for efficiency
rnn_sequence = tf.transpose(features, perm=[1, 0, 2], name='time_major')
rnn1 = rnn_layer(rnn_sequence, sequence_length, rnn_size, 'bdrnn1')
rnn2 = rnn_layer(rnn1, sequence_length, rnn_size, 'bdrnn2')
rnn_logits = tf.layers.dense( rnn2, num_classes+1,
activation=logit_activation,
kernel_initializer=weight_initializer,
bias_initializer=bias_initializer,
name='logits')
return rnn_logits
评论列表
文章目录