在测试期间重新加载 Keras Tokenizer

Van*_*enn 7 tokenize text-classification keras tensorflow word-embedding

我在这里学习了教程:(https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html

但是,我修改了代码,以便能够通过h5py. 因此,在运行训练脚本后,model.h5我的目录中生成了一个。

现在,当我想加载它时,我的问题是我对如何重新启动Tokenizer. 本教程有以下代码行:

tokenizer = Tokenizer(nb_words=MAX_NB_WORDS)
tokenizer.fit_on_texts(texts)
sequences = tokenizer.texts_to_sequences(texts)
Run Code Online (Sandbox Code Playgroud)

但假设,如果我model.h5在不同的模块中重新加载,我将需要创建另一个Tokenizer来标记测试集。但是,新的Tokenizer将适合测试数据,从而创建一个完全不同的词表。

因此,我的问题是:如何重新加载Tokenizer在训练数据集上训练的数据?我在某种程度上误解了EmbeddingKeras 层的功能吗?现在,我假设由于我们根据预先训练的词嵌入将某些词索引映射到它们相应的嵌入向量,因此词索引需要保持一致。但是,如果我们fit_on_texts在测试数据集上执行另一个,这是不可能的。

谢谢并期待您的回答!

小智 2

查看这个问题 评论者建议使用 pickle 来保存对象和状态,尽管问题仍然是为什么这种功能没有内置到 keras 中。