我正在建立一个序列到序列的模型,它接受一个2048长的1s和0s的向量(例如[1,0,1,0,0,1,0,0,0, 1,...,1])作为我的输入并将其翻译为我的已知输出(可变长度)1-20个长字符(例如GBNMIRN,ILCEQZG或FPSRABBRF)。
我的目标是创建一个模型,该模型可以接收一个新的2048长的1和0矢量,并预测输出序列的样子。
但我不确定如何用我的问题来实现它。是否有任何类似于此项目的项目/如何使用当前的seq2seq模型或LSTM实现此目的? (python实现)
我在python中使用keras库。
答案 0 :(得分:2)
您的输入很奇怪,因为它是二进制代码。我不知道该模型是否会运作良好。
首先,您需要为输入和输出添加开始和结束标记,以指示边界。然后设计每个时间步的区域模块,包括如何使用隐藏状态。您可以尝试使用简单的GRU / LSTM网络。
有关详细信息,您可以尝试编码器
和解码器
此外,您可以在论文Neural Machine Translation by Jointly Learning to Align and Translate中查看注意机制。结构如下。
详情
虽然您使用的是Keras,但我认为阅读PyTorch代码会很有帮助,因为它很简单易懂。 PyTorch tutorial
中给出的教程