tf.contrib.rnn.BasicLSTMCell是单个LSTM单元还是LSTM层?

tensorflow

1220 观看

1回复

13 作者的声誉

在tensorflow,有一个叫LSTM实现BasicLSTMCell其在tf.contrib.rnn.BasicLSTMCell。它具有一个参数num_units,表示LSTM单元中的单位数。但是我不知道那意味着什么。

如果我这样定义一个lstm单元:

lstm_cell = tf.contrib.rnn.BasicLSTMCell(512).

lstm_cell是什么样的?它是lstm节点还是具有512节点的lstm层?谁能告诉我这件事?

作者: Zero 的来源 发布者: 2017 年 9 月 15 日

回应 1


5

1014 作者的声誉

决定

它是具有512个单位的LSTM层。

BasicLSTMCell实现抽象类RNNCell。从文档中:

代表RNN单元的抽象对象。

每个RNNCell必须具有以下属性,并call使用签名实现(output, next_state) = call(input, state)

[...]

单元格的这种定义不同于文献中使用的定义。在文献中,“单元”是指具有单个标量输出的对象。此定义是指此类单元的水平阵列

创建LSTM层以及展开反向传播波谷时间的一种常见方法是:

lstm_cell = tf.contrib.rnn.BasicLSTMCell(512)
outputs, final_state = tf.nn.static_rnn(cell=lstm_cell,
                           dtype=tf.float32,
                           inputs=some_input_sequence)

哪里:

  • some_input_sequencenum_steps大小张量的列表[batch_size, input_size]
  • outputs将包含的每个元素之后的图层输出some_input_sequence。因此,它再次是num _steps大小元素的列表[batch_size, 512](其中512是单元的单位数量)
  • final_state在处理完整个序列后将包含状态。特别是,对于LSTM,它是一个具有两个元素c和的命名元组h(LSTM的两个状态)。
作者: Giuseppe Marra 发布者: 2017 年 9 月 15 日
32x32