def trainable_initial_state(self, batch_size):
"""
Create a trainable initial state for the MultiSkipGRUCell
:param batch_size: number of samples per batch
:return: list of tensors and SkipGRUStateTuple
"""
initial_states = []
for idx in range(self._num_layers - 1):
with tf.variable_scope('layer_%d' % (idx + 1)):
with tf.variable_scope('initial_h'):
initial_h = rnn_ops.create_initial_state(batch_size, self._num_units[idx])
initial_states.append(initial_h)
with tf.variable_scope('layer_%d' % self._num_layers):
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(SkipGRUStateTuple(initial_h, initial_update_prob, initial_cum_update_prob))
return initial_states
skip_rnn_cells.py 文件源码
python
阅读 31
收藏 0
点赞 0
评论 0
评论列表
文章目录