LSTM用于向量到字符序列的翻译

我想构建一个序列到序列的模型,该模型接收一个由1和0组成的长度为2048的向量作为输入(例如 [1,0,1,0,0,1,0,0,0,1,…,1]),并将其翻译成我已知的输出,即长度为1到20的字符序列(例如 GBNMIRN, ILCEQZG, 或 FPSRABBRF)。

我的目标是创建一个模型,能够接收一个新的长度为2048的由1和0组成的向量,并预测输出序列的样子。

我已经查看了GitHub上的一些代码库,比如这个这个

但我不知道如何将这些应用到我的问题中。有没有类似的项目可以参考?我该如何使用现有的seq2seq模型或LSTM来实现这个功能?(使用Python实现)

我正在使用Python的Keras库。


回答:

你的输入很奇怪,因为它是二进制代码。我不知道模型是否能很好地工作。

首先,你需要为输入和输出添加开始和结束标记,以指示边界。然后设计每个时间步的区域模块,包括如何使用隐藏状态。你可以尝试以下简单的GRU/LSTM网络。

enter image description here

关于细节,你可以尝试编码器

enter image description here

解码器

enter image description here

此外,你可以参考论文Neural Machine Translation by Jointly Learning to Align and Translate中的注意力机制。其结构如下所示。

enter image description here

关于细节

enter image description here

虽然你在使用Keras,但我认为阅读PyTorch代码会有所帮助,因为它直观且易于理解。可以参考PyTorch教程

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注