【问题标题】:Tensorflow: Delay variable over training stepsTensorflow:训练步骤上的延迟变量
【发布时间】:2016-10-11 18:15:17
【问题描述】:

在 Tensorflow 中,我想在下一个训练步骤中使用上一个训练步骤中我的网络的一些变量。更具体地说,我想在训练期间计算一个二级成本函数,该函数利用上一个训练步骤中的一些网络张量。

这个问题可以用 RNN 代码片段来回答,但我还不知道怎么做。我正在调查How can I feed last output y(t-1) as input for generating y(t) in tensorflow RNN?Tensorflow: How to pass output from previous time-step as input to next timestep 以及TensorFlow: Remember LSTM state for next batch (stateful LSTM)

假设 h 是神经网络的最后一层,前面有几个层,例如:

h = tf.nn.relu(tf.matmul(h_previous,W_previous))

如何在训练期间处理样本后保留张量 h(例如,将其保存到 h_old),以便我可以在下一个训练步骤中使用它进行如下计算:

d = tf.sub(h,h_old)

在这个例子中,h 用当前训练样本更新,h_old 是在前一个训练样本上计算的张量。这个问题的一些想法会很棒!

【问题讨论】:

    标签: python tensorflow recurrent-neural-network


    【解决方案1】:

    h_old 成为变量怎么样?

    h_old = tf.Variable(tf.zeros(<some-shape>))
    
    .
    .
    
    h = tf.nn.relu(tf.matmul(h_previous,W_previous))
    d = tf.sub(h,h_old)
    h_old.assign(h)
    

    【讨论】:

    • 感谢您的回复,我会尽快测试。我会告诉你这是否真的适用于这个问题。
    猜你喜欢
    • 1970-01-01
    • 2018-06-30
    • 1970-01-01
    • 2020-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2019-05-07
    • 1970-01-01
    相关资源
    最近更新 更多