45

scikit-learn に基づくnolearnの DBN (ディープ ビリーフ ネットワーク) を使用しています。

データを非常にうまく分類できるネットワークを既に構築しています。展開用にモデルをエクスポートすることに興味がありますが、方法がわかりません (何かを予測するたびに DBN をトレーニングしています)。ではmatlab、重み行列をエクスポートして、別のマシンにインポートします。

モデル全体を再度トレーニングする必要なく、インポートするモデル/重み行列をエクスポートする方法を誰かが知っていますか?

4

3 に答える 3

68

まず、joblibをインストールします。

以下を使用できます。

>>> import joblib
>>> joblib.dump(clf, 'my_model.pkl', compress=9)

その後、予測サーバーで:

>>> import joblib
>>> model_clone = joblib.load('my_model.pkl')

これは基本的に、大きな numpy 配列の処理が最適化された Python pickle です。通常の pickle wrt コード変更と同じ制限があります。pickle オブジェクトのクラス構造が変更された場合、新しいバージョンの nolearn または scikit-learn でオブジェクトを unpickle できなくなる可能性があります。

モデル パラメーターを長期にわたって堅牢に保存する方法が必要な場合は、独自の IO レイヤーを作成する必要がある場合があります (たとえば、プロトコル バッファーや avro などのバイナリ形式のシリアル化ツール、または PMML などの非効率的で移植性の高いテキスト / json / xml 表現を使用する)。 .

于 2013-07-07T12:19:25.257 に答える