python – 输入到LSTM网络张量流

前端之家收集整理的这篇文章主要介绍了python – 输入到LSTM网络张量流前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个长度为t(x0,…,xt)的时间序列,每个xi是d维向量,即xi =(x0i,x1i,xdi).因此,我的输入X是[batch_size,d]

张量流LSTM的输入应为[batchSize,hidden_​​size]大小.
我的问题是我应该如何输入我的时间序列给LSTM.我想到的一个可能的解决方案是具有大小[d,hidden_​​size]的额外的权重矩阵W,并且使用X * W B输入LSTM.

这是正确的还是应该输入网络?

谢谢

解决方法

你的直觉是正确的您需要什么(以及您所描述的)是将输入向量转换为LSTM输入的维度的嵌入.我知道要做到这一点的三个主要方式.

>您可以使用额外的权重矩阵W和偏置向量b手动进行操作.
>您可以使用linear()函数from TensorFlow’s rnn_cell.py library自动创建权重矩阵和偏置向量.然后,通过rnn_decoder()函数in Tensorflow’s seq2seq.py library或其他方式创建LSTM时,将该线性层的输出作为LSTM的输入传递.
>或者您可以通过在同一seq2seq库的第141行的embedding_rnn_decoder()函数创建LSTM来创建此嵌入并将其挂接到LSTM的输入. (如果您浏览此函数代码而没有任何可选参数,您将看到它只是为输入以及LSTM创建一个线性嵌入层,并将它们连接在一起).

除非您需要访问由于某些原因创建的各个组件,否则我建议使用第三个选项来保持代码的高度.

原文链接:https://www.f2er.com/python/186683.html

猜你在找的Python相关文章