关于如何在tensorflow中实现附加的LSTM RNN体系结构有什么想法吗?

2024-04-26 20:20:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用this示例并扩展它以实现下图中的体系结构。代码使用BasicLSTMCell和tf.contrib.rnn公司.BasicLSTMCell,方法如下:

    lstm_cell = tf.contrib.rnn.BasicLSTMCell(n_hidden)
    outputs, states = tf.contrib.rnn.static_rnn(lstm_cell, x, dtype=tf.float32,sequence_length=seqlen)

我打印了“states”(和outputs),我希望“states”的形状是[number of input sequences,x],其中x是每个输入序列的长度。 但是,当我打印“状态”(或“输出”)时,它们都有形状[输入序列的数量,n\u hidden],其中n\u hidden是特征的隐藏层数。你知道吗

首先,我是否只打印一个时间步(可能是最后一个时间步)的隐藏状态,而不打印展开的RNN?? 如何在RNN处理输入序列的每个时间步之后打印所有隐藏状态(以确保实现以下体系结构)?你知道吗

第二,如何在tensorflow中实现以下体系结构?假设每个x-i是一个12位二进制向量,每个输入序列最多包含80个向量。每个输入序列与一个输出序列配对,目标是通过查看相关的输入序列来预测这些输出序列。你知道吗

Figure 1


Tags: 状态体系结构tf时间cell序列contriboutputs
1条回答
网友
1楼 · 发布于 2024-04-26 20:20:00

太可疑了。你知道吗

静态输出的返回应该是所有输出和最终状态(link)。你知道吗

因此,从输出来看,它应该是一个len seqlen列表,每个条目都隐藏了一个批xn\u。你知道吗

使用tf.nn.静态\u保存\u rnn保存所有中间状态,然后像模型中的任何其他张量一样打印它们。你知道吗

对于架构问题。你知道吗

如果您应该在每个条目之后返回一个输出,那么获取输出并应用一个loss使它们看起来像您的标签。你知道吗

如果你要查看整个序列,然后提出输出,那么你需要两个rnn系统。你应该有一个编码rnn,就像你已经有了。我们忽略这部分的输出。然后获取最终状态,并将其提供给解码rnn。这个没有任何输入。我们获取解码rnn的输出,并应用一个损耗使它们看起来像标签。你知道吗

像往常一样,你应该尝试各种设置,不同大小的层,不同数量的层,等等。。。选择最好的设置。你知道吗

相关问题 更多 >