3

中にKerasトークナイザをリロード私はここのチュートリアルに従っ:(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) 

しかし、私は別のモジュールでmodel.h5をリロードする場合仮に、私がテストセットをトークン化するために、別のTokenizerを作成する必要があります:チュートリアルでは、次のコード行を持っています。しかし、新しいTokenizerがテストデータに適合し、全く異なる単語表が作成されます。

したがって、私の質問は:Tokenizerトレーニングデータセットでトレーニングされたものをどのようにリロードするのですか? KerasのEmbeddingレイヤの機能を誤解していますか?今は、あらかじめ訓練された単語の埋め込みに基づいて、対応する埋め込みベクトルに特定の単語インデックスをマッピングしたので、単語インデックスは一貫している必要があると仮定しています。ただし、テストデータセットで別のfit_on_textsを実行すると、これは不可能です。

ありがとう、あなたの答えを楽しみにしています!

+5

[Keras Text Preprocessing - スコアリングのためにTokenizerオブジェクトをファイルに保存する](https://stackoverflow.com/questions/45735070/keras-text-preprocessing-saving-tokenizer-object-to-file-for-スコアリング) – xenocyon

答えて

2

Check out this question コメンターは、この種の機能がkerasに内蔵されていない理由を疑問が残っているものの、オブジェクト&状態を保存するためにピクルスを使用することをお勧めします。