2016-02-17 4 views
9

私は多くの訓練されたモデルのアンサンブルを作成しようとしています。すべてのモデルは同じグラフを持ち、重さによって異なります。私はtf.get_variableを使ってモデルグラフを作成しています。私は同じグラフのアーキテクチャのためにいくつかの異なるチェックポイント(異なる重みを持つ)を持っており、私は各チェックポイントのための1つのインスタンスモデルを作りたいと思う。tensorflowでアンサンブルを作成する方法は?

以前ロードされたウェイトを上書きしないで、多くのチェックポイントをロードするにはどうすればよいですか?

グラフをtf.get_variableで作成したので、複数のグラフを作成できる唯一の方法は、引数​​を渡すことです。ここで、ビルドメソッドを囲むグラフ変数の名前を新しいスコープに変更しようとすると(ロードされる前に他の作成されたグラフと共有できなくなる)、新しい名前が保存された名前と異なるため体重と私はそれを読み込むことができなくなります。

+0

、私はまだそれを試してみましたが、ここにいくつかの参照コードでいない。要するに https://github.com/eske/seq2seq/blob/master/translate/__main__.py#L190 、著者はとして作成されます多くのチェックポイントを多数のセッションに分け、各セッション内で対応するチェックポイントを復元します。 – tnq177

+0

さらに関連する参考コード:https://github.com/Hvass-Labs/TensorFlow-Tutorials/blob/master/05_Ensemble_Learning.ipynb – Deepank

+0

@cesarsalgado:同じ問題があります。私はtf-slimでinception-v4を使用しています。どのように解決しましたか? – Jame

答えて

-1

私もRedditでこれに答えましたが、他の人がこの問題に遭遇した場合には、私はここに再転記しています。

Scikit Flowを使用すると、モデルを簡単に保存および復元し、異なるモデルからさまざまな予測を行い、それらの予測からアンサンブルを作成することができます。サンプルページからそれらを保存して復元する方法を確認してください。

predict_proba()もあります。predict()の代わりに、予測される確率を得ることができます。単純な平均、積み重ねなど、異なる種類のアンサンブルを構築するのは簡単なはずです。

これが役に立ちます。

関連する問題