创建一个python算法来训练keras模型来预测一个大的整数序列

2024-06-25 22:52:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我对机器学习还不熟悉,但我正试图把它应用到我的一个项目中。我能够训练一个模型,使用LSTM层将单词从一种语言转换成另一种语言。假设我使用A作为模型的输入,得到B作为输出。我要做的是:

'original word' -> word embedding -> one-hot encode (A) -> MODEL -> one-hot encoded output (B) -> word embedding -> 'translated word'

这是相对简单的,因为我使用字符级标记器来编码单词,并且不需要太多内存(小序列,每个单词一个)。你知道吗

然而,我现在必须训练一个以B作为输入并给我C(不再是翻译问题)的模型。C稍后将用于不同的目的。不同之处在于,C的长度可以是315个数字,每个数字都可以是5514个唯一值中的一个,即shape(2155514)。一般来说,我想做的是,例如:

'banana' -> (some processing, word embedding or one-hot) -> MODEL -> [434, 434, 410, 321, 225, 146, 86, 43, 13, -8, -23, -32, -38, -41, -13, 101, 227, 332, 411, 470, 515, 550, 577, 597, 611, 622, 628, 622, 608, 593, 580, 570, 561, 554, 549, 547, 548, 548, 549, 555, 564, 572, 579, 584, 587, 589, 590, 591, 591, 591, 590, 590, 584, 567, 550, 535, 524, 516, 511, 506, 503, 503, 507, 511, 518, 530, 543, 553, 561, 568, 573, 577, 580, 582, 584, 585, 586, 586, 587, 587, 588, 588, 588, 588, 588, 586]

所以问题是我没有足够的内存来对输出序列进行单热编码。我尝试使用生成器从磁盘加载每个序列,而不是从内存加载所有序列,但似乎不起作用。你知道吗

你对我该如何处理这个问题有什么建议吗?你知道吗

编辑: 我使用的数据集的格式如下:n行,每行包含2列,由一个选项卡分隔。第一列是输入字,第二列是我想要获得的序列,如果输入是那个字的话。你知道吗


Tags: 项目内存模型机器语言编码model序列
1条回答
网友
1楼 · 发布于 2024-06-25 22:52:11

一个热编码根据数据集中的唯一类别增加列数。我认为您应该检查模型的性能,只使用标记器,而不是两者都使用。因为大多数情况下,标记器本身的性能非常好。你知道吗

相关问题 更多 >