- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在使用 dynamic_rnn 处理 MNIST 数据:
# LSTM Cell
lstm = rnn_cell.LSTMCell(num_units=200,
forget_bias=1.0,
initializer=tf.random_normal)
# Initial state
istate = lstm.zero_state(batch_size, "float")
# Get lstm cell output
output, states = rnn.dynamic_rnn(lstm, X, initial_state=istate)
# Output at last time point T
output_at_T = output[:, 27, :]
完整代码:http://pastebin.com/bhf9MgMe
lstm的输入是(batch_size, sequence_length, input_size)
因此 output_at_T
的维度为 (batch_size, sequence_length, num_units)
其中 num_units=200
。
我需要沿 sequence_length
维度获取最后一个输出。在上面的代码中,这被硬编码为 27
。但是,我事先不知道 sequence_length
,因为它可以在我的应用程序中逐批更改。
我试过了:
output_at_T = output[:, -1, :]
但它表示尚未实现负索引,我尝试使用占位符变量和常量(理想情况下,我可以将特定批处理的 sequence_length
输入其中);都没有用。
有什么方法可以在 tensorflow atm 中实现类似的东西?
最佳答案
您是否注意到 dynamic_rnn 有两个输出?
所以来自:
h, final_state= tf.dynamic_rnn( ..., sequence_length=[batch_size_vector], ... )
批处理中每个元素的最后状态是:
final_state.h
请注意,这包括批处理的每个元素的序列长度不同的情况,因为我们使用的是 sequence_length 参数。
关于python - 获取 tensorflow 中dynamic_rnn的最后输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36817596/
我试图在长字符序列中标记字母。数据的固有结构要求我使用双向方法。 此外基于on this idea我需要在每个时间步访问隐藏状态,而不仅仅是最后一个。 为了尝试这个想法,我使用了固定长度的方法。我目前
我目前正在使用 tf.Dynamic RNN 构建文本分类模型。我的输入长度不同,因此我将输入填充为相同(最大)长度。 我在 tf.nn.dynamic_rnn 中使用了 sequence_lengt
似乎 tf.nn.dynamic_rnn 已被弃用: Warning: THIS FUNCTION IS DEPRECATED. It will be removed in a future vers
我的问题是关于 TensorFlow 方法 tf.nn.dynamic_rnn。它返回每个时间步的输出和最终状态。 我想知道返回的最终状态是最大序列长度的细胞状态,还是由 sequence_lengt
我想加速我的 LSTM 网络,但是当我将它用于 OCR(其中序列具有可变长度)时,我不能使用普通的 LSTM 实现。这就是我使用“tf.nn.dynamic_rnn”的原因。 基于 tensorflo
我正在尝试构建 CNN + RNN 模型,但收到以下错误。任何帮助将不胜感激。 fc2 has shape (?,4096) cell = tf.contrib.rnn.BasicLSTMCell(s
在tensorflow中,tf.nn.static_rnn和tf.nn.dynamic_rnn有什么区别,什么时候用? 两者都采用一个 sequence_length 参数,使计算适应输入的实际长度;
对于单个的 RNNCell , 使用色的 call 函数进行运算时 ,只是在序列时间上前进了一步 。 如使用 x1、 ho 得到此h1, 通过 x2 、 h1 得到 h2 等
我无法理解 tf.nn.dynamic_rnn 的输出 tensorflow 函数。该文档仅说明输出的大小,但并未说明每行/列的含义。从文档: outputs: The RNN output Tens
tensorflow.nn.dynamic_rnn给定 cell 创建一个循环神经网络,它是 RNNCell 的一个实例,并返回一对包含: outputs:RNN 输出张量 state:最终状态 这是
我有一个形状为 [batch, None, dim] 的 3-D 张量,其中第二维(即时间步长)是未知的。我使用 dynamic_rnn 来处理此类输入,如以下代码片段所示: import numpy
我正在尝试使用 tf.nn.dynamic_rnn 在 TensorFlow 0.9.0 中使用词嵌入和递归神经网络编写语言模型。图操作,但我不明白input是怎么回事张量是结构化的。 假设我有一个包
我想保存我的 LSTM 的最终状态,以便在我恢复模型时包含它并可用于预测。如下所述,当我使用 tf.assign 时,Saver 只知道最终状态。但是,这会引发错误(也在下面解释)。 在训练期间,我总
我正在尝试使用低级 API tf.nn.raw_rnn 复制 tf.nn.dynamic_rnn 的行为。为此,我使用相同的数据 block 、设置随机种子并使用相同的 hparams 来创建单元格和
我想构建一个用于回归的玩具 LSTM 模型。 This不错的教程对于初学者来说已经太复杂了。 给定一个长度为 time_steps 的序列,预测下一个值。考虑 time_steps=3 和序列: ar
根据Tensorflow官网,(https://www.tensorflow.org/api_docs/python/tf/contrib/rnn/BasicLSTMCell#zero_state)z
我无法理解 tensorflow 的 dynamic_rnn 的输入参数.如果我能理解如何转换 static_rnn 会很有帮助输入 dynamic_rnn输入。 对于 static_rnn ,输入应
这里我问的是动态行为是如何工作的。这是 tensorflow documentation对于上面的dynamic_rnn函数。该函数创建的 RNN 输入 block 的最大长度是多少?它会根据最大的输
默认情况下,函数 dynamic_rnn 只输出每个时间点的隐藏状态(称为 m),可以通过以下方式获得: cell = tf.contrib.rnn.LSTMCell(100) rnn_outputs
上下文 我正在阅读 Hands on ML 的第二部分并且正在寻找关于何时使用“输出”以及何时在 RNN 的损失计算中使用“状态”的一些清晰度。 在书中(对于那些拥有该书的人,第 396 页),作者说
我是一名优秀的程序员,十分优秀!