我正在查看tensorflow LSTM教程,它有代码行:
def lstm_cell():
# With the latest TensorFlow source code (as of Mar 27, 2017),
# the BasicLSTMCell will need a reuse parameter which is unfortunately not
# defined in TensorFlow 1.0. To maintain backwards compatibility, we add
# an argument check here:
if 'reuse' in inspect.getargspec(tf.contrib.rnn.BasicLSTMCell.__init__).args:
return tf.contrib.rnn.BasicLSTMCell(
size, forget_bias=0.0, state_is_tuple=True,
reuse=tf.get_variable_scope().reuse)
else:
return tf.contrib.rnn.BasicLSTMCell(
size, forget_bias=0.0, state_is_tuple=True)
这对我来说似乎很困惑。似乎重用标志存在问题。它为什么如此重要。我们为什么需要它?我知道RNN总是在我们产生新状态时共享参数,那么为什么要随机决定删除这样一个重要的标志......这让我觉得我可能不明白缺少什么。我非常了解Chris's blog在LSTM上的帖子,所以我发现教程中的这段代码真的很神秘。