用于向量到字符序列转换的LSTM

时间:2017-06-19 22:11:15

标签: machine-learning neural-network deep-learning lstm recurrent-neural-network

我正在建立一个序列到序列的模型,它接受一个2048长的1s和0s的向量(例如[1,0,1,0,0,1,0,0,0, 1,...,1])作为我的输入并将其翻译为我的已知输出(可变长度)1-20个长字符(例如GBNMIRN,ILCEQZG或FPSRABBRF)。

我的目标是创建一个模型,该模型可以接收一个新的2048长的1和0矢量,并预测输出序列的样子。

我查看了一些github存储库,例如thisthis

但我不确定如何用我的问题来实现它。是否有任何类似于此项目的项目/如何使用当前的seq2seq模型或LSTM实现此目的? (python实现)

我在python中使用keras库。

1 个答案:

答案 0 :(得分:2)

您的输入很奇怪,因为它是二进制代码。我不知道该模型是否会运作良好。

首先,您需要为输入和输出添加开始和结束标记,以指示边界。然后设计每个时间步的区域模块,包括如何使用隐藏状态。您可以尝试使用简单的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 tutorial

中给出的教程