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

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

我正在寻求构建一个序列到序列模型,该模型接受 2048 长的 1 和 0 向量(例如 [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 库。

最佳答案

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

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

enter image description here

有关详细信息,您可以尝试Encoder

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中给出的教程

关于machine-learning - 用于向量到字符序列转换的 LSTM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44640760/

相关文章:

tensorflow - 如何识别放大的图像?

matlab - 测试经过训练的神经网络 - Matlab

python - numpy ValueError 形状未对齐

neural-network - softmax 函数解释的导数

python - 来自 Transformers 的 BertForSequenceClassification 的大小不匹配和多类问题

java - 如何训练 libsvm 格式的图像(像素)数据以用于 Java 识别

c# - Accord.Net - LibLinear 上的 CacheSize

python - 为什么我们需要在 PyTorch 中调用 zero_grad()?

python - 当我在 tensorflow.keras 中使用 BinaryCrossentropy(from_logits=True) 时,我应该使用什么作为目标向量

python - SummaryWriter 不在 TensorFlow 中输出图形