【问题标题】:Incremental continuous timeseries using TensorFlow RNN使用 TensorFlow RNN 的增量连续时间序列
【发布时间】:2016-02-17 05:51:16
【问题描述】:

我想提供时间序列数据 - 一次一步,逐步构建 rnn(经过几个初始步骤)。

目前 rnn() 将 encoder_input 和 decoder_input 作为完整序列。

def rnn_seq2seq(encoder_inputs, decoder_inputs, cell, initial_state=None,output_projection=None,feed_previous=False, dtype=tf.float32, scope=None):
  with tf.variable_scope(scope or "rnn_seq2seq"):
    _, enc_states = rnn.rnn(cell, encoder_inputs, initial_state=initial_state, dtype=dtype)

    def extract_argmax(prev, i):
        with tf.device('/gpu:0'):
            prev = tf.nn.softmax(tf.nn.xw_plus_b(prev, output_projection[0], output_projection[1]))
        return prev

    loop_function = None
    if feed_previous:
      loop_function = extract_argmax

    print enc_states[-1]
    return seq2seq.rnn_decoder(decoder_inputs, enc_states[-1], cell, loop_function=loop_function)

feedP = tf.placeholder(dtype=tf.bool)
with tf.variable_scope("mylstm"): 
    output,state = rnn_seq2seq(enc_inputs,dec_inputs,cell,output_projection=output_projection,feed_previous=feedP)

是否可以一次输入decoder_input 一个步骤而不是整个序列,因为这是实时数据的方式?

【问题讨论】:

    标签: sequence tensorflow recurrent-neural-network


    【解决方案1】:

    查看Scikit Flow。示例文件夹包含许多处理 RNN 的示例,并且有内置的 RNN 估计器,您可以将其插入现有代码中。

    在估算器中检查此fit() 方法,您会发现partial_fit() 允许持续训练,满足您的需求。许多示例使用它在while 循环中继续训练并随着时间的推移保存检查点(您也可以配置频率)。

    希望这会有所帮助。

    【讨论】:

    • partial_fit 只是调用 fit() 函数而不添加任何值。这将有什么帮助?您需要在 skflow 中指定 RNN 的模型。在这种情况下,模型会是什么样子?
    • 它实际上与 fit 相同,因为 fit 是以接受迭代器或一次可以取一个样本的方式实现的。它只是为用户提供更好的 API。这些示例可能会帮助您入门,例如seq2seq、RNN/LSTM 等。希望这会有所帮助。
    猜你喜欢
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多