我是机器学习的新手,但我正在尝试将它应用到我的一个项目中。我能够训练一个模型来使用LSTM层将单词从一种语言转换成另一种语言。假设我使用A作为我的模型的输入,我得到B作为输出。我所做的是:
->字嵌入->一个热编码(A) ->模型->单热编码输出(B) ->字嵌入->‘翻译字’
这是相对简单的,因为我使用字符级别的标记程序来编码单词,这不需要太多的内存(小的序列,每个单词一个)。
然而,我现在必须训练一个以B为输入并给我C(不再是翻译问题)的模型。C以后将被用于不同的用途。不同之处在于C可以具有长度为315个的数字,它们中的每一个都可以是5514唯一值之一,即形状(215,5514)。一般说来,我想做的是,例如:
“香蕉”(一些处理,字嵌入或单热) ->模型-> 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、586
因此,问题是,我没有足够的内存来执行输出序列的一次热编码。我尝试使用生成器从磁盘加载每个序列,而不是从内存中加载所有序列,但它似乎不起作用。
关于我该如何处理这个问题,你有什么建议吗?
编辑:我使用的数据集有以下格式:n行,每一行包含2列,由一个选项卡分隔。第一列是输入字,第二列是我想要得到的序列,如果输入是那个词。
发布于 2019-09-04 15:22:29
一个热编码根据数据集中的唯一类别增加列数。我认为您应该只使用令牌程序来检查模型的性能,而不是两者都使用。因为大多数情况下,只使用令牌程序就能很好地执行任务。
https://stackoverflow.com/questions/57785752
复制相似问题