我使用以下代码来生成num_steps
给定长度的序列,starting_point
并starting_state
使用 a 的实例RNNCell
,例如cell=GRUCell(number_of_neurons)
.
outputs = [starting_point]
state = starting_state
for time_step in range(num_steps):
if time_step > 0: tf.get_variable_scope().reuse_variables()
(cell_output, state) = cell(outputs[time_step], state)
outputs.append(cell_output)
但这对于我的用例来说既慢又麻烦,其中num_steps = 1000
. 即使实例化图表也需要很长时间。
这个功能是否存在于 Tensroflow 的某个地方,而我只是错过了它?
请注意,我正在寻找的内容与tf.contrib.rnn.static_rnn
. 该文档将这个函数的行为总结为简单地将 RNN 应用于序列中的每个时间步:
state = cell.zero_state(...)
outputs = []
for input_ in inputs:
output, state = cell(input_, state)
outputs.append(output)
return (outputs, state)
但就我而言,我想将一个步骤的输出作为下一步的输入。