2017-08-17 8 views
9

以下の手順(広範に)に従って、Kerasライブラリを使用して感情分類子モデルを訓練しました。トークナイザオブジェクト/クラスを使用してシーケンスにKeras Text Preprocessing - スコアリングのためにTokenizerオブジェクトをファイルに保存する

  1. 変換テキストコーパス
  2. は、私は、このモデルを使用してスコアリングのために今、このモデルに

を評価model.fit()メソッドを使用してモデルを構築しますモデルをファイルに保存してファイルから読み込むことができました。しかし、私はTokenizerオブジェクトをファイルに保存する方法を見つけていません。これがなければ、私は1つの文章でもスコアを取る必要があるたびにコーパスを処理する必要があります。これを回避する方法はありますか?

答えて

17

最も一般的な方法は、pickleまたはjoblibのいずれかを使用することです。ここでは、Tokenizerを節約するためにpickleを使用する方法の例があります。

import pickle 

# saving 
with open('tokenizer.pickle', 'wb') as handle: 
    pickle.dump(tokenizer, handle, protocol=pickle.HIGHEST_PROTOCOL) 

# loading 
with open('tokenizer.pickle', 'rb') as handle: 
    tokenizer = pickle.load(handle) 
+0

テストセットでtokenizer.fit_on_textsを再度呼び出しますか? – cgl

+0

番号fit *をもう一度呼び出すと、インデックスが変更される可能性があります。ピックルがロードされたトークナイザはすぐに使用できます。 –

1

私はkerasレポで問題https://github.com/keras-team/keras/issues/9289を作成しました。 APIが変更されるまで、問題には、トークナイザが収まっていた元のドキュメントを持たずにトークナイザを保存して復元する方法を示すコードを持つ要点へのリンクがあります。 JSONファイルにすべてのモデル情報を格納する方が好きです(理由は同じですが、主にJS/Python環境が混在するため)。これはsort_keys = Trueの場合でも可能です。

関連する問題