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

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

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