def trainable_initial_state(self, batch_size):
"""
Create a trainable initial state for the MultiSkipLSTMCell
:param batch_size: number of samples per batch
:return: list of SkipLSTMStateTuple
"""
initial_states = []
for idx in range(self._num_layers - 1):
with tf.variable_scope('layer_%d' % (idx + 1)):
with tf.variable_scope('initial_c'):
initial_c = rnn_ops.create_initial_state(batch_size, self._num_units[idx])
with tf.variable_scope('initial_h'):
initial_h = rnn_ops.create_initial_state(batch_size, self._num_units[idx])
initial_states.append(LSTMStateTuple(initial_c, initial_h))
with tf.variable_scope('layer_%d' % self._num_layers):
with tf.variable_scope('initial_c'):
initial_c = rnn_ops.create_initial_state(batch_size, self._num_units[-1])
with tf.variable_scope('initial_h'):
initial_h = rnn_ops.create_initial_state(batch_size, self._num_units[-1])
with tf.variable_scope('initial_update_prob'):
initial_update_prob = rnn_ops.create_initial_state(batch_size, 1, trainable=False,
initializer=tf.ones_initializer())
with tf.variable_scope('initial_cum_update_prob'):
initial_cum_update_prob = rnn_ops.create_initial_state(batch_size, 1, trainable=False,
initializer=tf.zeros_initializer())
initial_states.append(SkipLSTMStateTuple(initial_c, initial_h,
initial_update_prob, initial_cum_update_prob))
return initial_states
skip_rnn_cells.py 文件源码
python
阅读 35
收藏 0
点赞 0
评论 0
评论列表
文章目录