微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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.jb51.cc/python/186683.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐