在tensorflow中,有一个lstm实现称为BasicLSTMCell
at tf.contrib.rnn.BasicLSTMCell
。它具有一个参数num_units
,表示LSTM单元中的单元数。但是我不知道那意味着什么。
如果我这样定义一个lstm单元:
lstm_cell = tf.contrib.rnn.BasicLSTMCell(512).
lstm_cell是什么样的?它是lstm节点还是具有512节点的lstm层?谁能告诉我这件事?
它是具有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_sequence
是num_steps
大小张量的列表[batch_size, input_size]
outputs
将包含的每个元素之后的图层输出some_input_sequence
。因此,它再次是num _steps
大小元素的列表[batch_size, 512]
(其中512是单元的单位数量)final_state
在处理完整个序列后将包含状态。特别是,对于LSTM,它是一个具有两个元素c
和的命名元组h
(LSTM的两个状态)。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句