2017-12-07 3 views
0

トレーナーと必要なすべてのコンポーネントを保存する最良の方法は何ですか?CNTKトレーナー、モデル、インプット、アウトプットの保存/再ロード

1.保管:trainer

  • ストアのチェックポイント:また別にモデルを格納し、そのtrainer.save_checkpoint(filename, external_state={})機能
  • を使用してください:z.save(filename)メソッドを使用して、すべてのcntk操作があります。 z = trainer.modelも入手できます。

2.リロード:使用C.load_model(...)

  • モデルを復元します。 (Cntk 1から廃止予定の永続名前空間で混乱しないでください。)
  • 復元されたモデルからの入力を取得します。
  • トレーナー自体を復元します。たとえば、trainer.restore_from_checkpointを使用します。示されたhere。問題は、この機能にはすでに、チェックポイントを作成するために使用されたトレーナーと同じ方法で初期化する必要のあるトレーナーオブジェクトが必要なことです。

トレーナーが使用しているエラー機能に入るラベル入力を復元するにはどうすればよいですか?次のコードでは、一度保存した後に復元する必要がある変数をマークしました。

z = C.layers.Dense(....) 
loss = error = C.squared_error(z, **l**) 
**trainer** = C.Trainer(**z**, (loss, error), [mylearner], my_tensorboard_writer) 

答えて

0

あなたのトレーナーを復元することができますが、私は実際にちょうど私のモデルmをロードすることを好みます。簡単な理由は、新しいトレーナーを作成するのがずっと簡単で、トレーナーの他のすべてのパラメーターをより簡単に変更できることです。 次に、(ネットワークに一つだけの入力を持っている場合)は、ロードされたモデルからの入力変数を取得することができます。その後、

input_var = m.arguments[0] 

あなたは、モデルの出力が必要です。

output = m(input_var) 

をし、損失関数を定義しますあなたのターゲット出力target_output使用して:あなたのモデルと損失関数を使用して

C.squared_error(output, target_output) 

をあなたはリットルを設定し、そこから自分のトレーナーを再作成することができますあなたのように収益率等

関連する問題