2016-07-23 3 views
0

私はLSTMモデルL1をW-lstm、b-lstm、Wy、byなどのパラメータで事前トレーニング用に訓練しました。LSTMモデルのパーツパラメータを復元する方法

そして、別のWyと、Wy2とby2を仮定して、新しいLSTMモデルL2を訓練したいと思います。

したがって、L1からW-lstmとb-lstmを復元し、Wy2とby2を開始するにはどうすればよいですか?その後、トレーニング。

saver.restore()?

ありがとうございました。

+0

ようこそスタックオーバーフロー。コードの最小限のバージョンを投稿して、あなたが試したことの明確な例とともに、最高の回答を得るでしょう。詳細についてはこちらをご覧ください:http://stackoverflow.com/help/mcve – Toby

答えて

-1

セーバーを作成するときに、保存する変数のリストを渡すことができます。したがって、最初のLSTMのためだけにセーバを作成することができます。ここに私が意味するものの例があります。 LSTMを変数スコープ内に作成して、そのスコープ内の変数のみを保存するセーバーを作成するだけです(これはブラウザに入力したコードなので、タイプミスがある可能性があります)。

lstm = tf.nn.rnn_cell.BasicLSTMCel(1024) 
with tf.variable_scope('L1') as scope: 
    state = INITIAL_STATE 
    for t in range(TIME_STEPS): 
     output, state = lstm(input, state) 
     scope.reuse_variables() 

... 

l1_saver = tf.train.Saver([v for v in tf.all_variables() if 'L1' in v.name]) 
+0

L1モデルをトレーニングすると、すべてのパラメータが保存されました。だから、この状況で、私は必要なパラメータの一部を抽出する方法は? – user6629312

+0

すべてのセーバーでリストアを行い、特定のL1セーバーを使用して、必要な部分だけを保存し、その後、L1セーバーを使用することができます。 – chasep255

+0

あなたは再びモデルを訓練することを意味しますか? 2人の保護者がいる?すべてのセーバーと特定のL1セーバー? – user6629312

関連する問題