内置的 LSTM 单元为您提供了一个可调用的。但是,我想在 LSTM 层之前和之后添加静态层,并通过反向传播训练所有内容。那可能吗?
问问题
659 次
1 回答
3
单元格callable
是一个函数,它将输入tf.Tensor
和当前状态作为 a tf.Tensor
,并返回一个输出tf.Tensor
和新状态作为 a tf.Tensor
。输入/输出和状态张量没有什么特别之处:它们可以从其他 TensorFlow 操作中计算和/或用作其他操作的输入。
例如,查看ptb_word_lm.py
模型:
for time_step in range(num_steps):
# ...
(cell_output, state) = cell(inputs[:, time_step, :], state)
outputs.append(cell_output)
这里,inputs
是一个 3-D 张量,从中获取切片以获取 LSTM 的一个单元的输入,最初使用 计算,然后state
每次后续迭代都使用前一次迭代的状态。cell.zero_state()
张量inputs
是运算的结果tf.nn.embedding_lookup()
;该outputs
列表稍后被连接并用作损失计算的输入。TensorFlow 通过 RNN 将损失从损失中反向传播,并将嵌入查找返回到模型变量。
于 2016-03-26T22:12:16.137 回答