[英]Confusion regarding data generator in python for use in Keras fit_generator
[英]Keras: Tokenizer with fit_generator() on text data
我正在使用keras在非常大的文本数据集上创建神经网络。 为了构建模型并确保一切正常,我将一小部分数据读入内存,并使用内置的keras'Tokenizer'来执行必要的预处理工作,包括将每个单词映射到令牌。 然后,我使用model.fit()。
现在,我想扩展到完整的数据集,并没有空间将所有数据读入内存。 所以,我想创建一个生成器函数来顺序从磁盘读取数据,并使用model.fit_generator()。 但是,如果我这样做,那么我会在每批数据上单独调整Tokenizer对象,为每个批次提供不同的单词到令牌映射。 有没有办法解决? 有什么办法可以用keras连续构建一个令牌字典吗?
所以基本上你可以用以下方式定义文本生成器并将其提供给fit_on_text
方法:
假设您有texts_generator
从磁盘读取部分数据并返回可迭代的文本集合,您可以定义:
def text_generator(texts_generator): for texts in texts_generator: for text in texts: yield text
请注意,在从磁盘读取整个数据后,应使此发生器停止 - 有可能使您更改要在model.fit_generator
使用的原始生成器
从1开始生成生成器后,您可以通过以下方式应用tokenizer.fit_on_text
方法:
tokenizer.fit_on_text(text_generator)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.