我正在寻求构建一个序列到序列模型,该模型接受 2048 长的 1 和 0 向量(例如 [1,0,1,0,0,1,0,0,0, 1,...,1] )作为我的输入,并将其转换为我已知的(可变长度)1-20 个长字符的输出(例如 GBNMIRN、ILCEQZG 或 FPSRABBRF)。
我的目标是创建一个模型,可以接受新的 2048 长的 1 和 0 向量并预测输出序列的样子。
我查看了一些 github 存储库,例如 this和 this .
但我不知道如何解决我的问题。是否有任何项目做过类似的事情/我如何使用当前的 seq2seq 模型或 LSTM 来实现这一点? (Python实现)
我正在 python 中使用 keras 库。
最佳答案
您的输入很奇怪,因为它是二进制代码。我不知道这个模型是否能很好地工作。
首先,您需要为输入和输出添加开始和结束标记,以指示边界。然后设计每个时间步的区域模块,包括如何使用隐藏状态。您可以尝试如下简单的 GRU/LSTM 网络。
有关详细信息,您可以尝试Encoder
和解码器
另外,你可以看看论文 Neural Machine Translation by Jointly Learning to Align and Translate 中的注意力机制 。其结构如下。
详情
虽然您使用的是 Keras,但我认为阅读 PyTorch 代码会有所帮助,因为它简单易懂。 PyTorch tutorial中给出的教程
关于machine-learning - 用于向量到字符序列转换的 LSTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640760/