2016-05-03 12 views
0

私はいくつかの隠れた状態の小さなLSTMユニットを形成しました。 Tensorflow howtosから、私はtf.Variableで宣言されている変数の状態を保存し復元することができました。テンソルフローライブラリ内の共有変数を保存

def linear(args, output_size, bias, bias_start=0.0, scope=None): 

と内部の共有変数のアクセスは、私の知る限り、この行列店を理解するよう

matrix = vs.get_variable("Matrix", [total_arg_size, output_size])

があります:私はrnn_cell.pyを調査したときにしかし、私は、関数が存在することを見ました重みW_i、W_o、W_fとW_o、来て、一次関数の後ので:

new_c = c * sigmoid(f + self._forget_bias) + sigmoid(i) * tanh(j) 
new_h = tanh(new_c) * sigmoid(o) 

をだから、私は、この変数を保存し、復元するために喜んでよく私の質問はこれがどこで可能なのか?

+0

なぜしたいですか?現在の保存/復元が機能しません。 –

+0

1 - 私が別の投稿から読んだのは、保存と復元がそれらの変数を保存しないということです(あなた自身のコードで定義した変数のみを保存します。 2 - スピード:私は何百ものトレーニングデータファイルを持っており、これらのファイルを訓練するときに、ファイルの先頭と最後に状態を復元して保存します。したがって、1つのファイルをバッチで処理する際に、いくつかのカスタム計算では、すべてのバッチ(256個の要素ごとに)でMatrixの値が必要になります。 256個の要素ごとに保存して復元するのは、コストがかかります(読み取り/書き込みio)。 – flyingmadden

答えて

0

記録のために、可変範囲にさらに進んでマトリックスを得ることができました。 get_variableは、同様に薄暗い情報を必要とします。[2 * hidden_size, 4 * hidden_size]

 with tf.variable_scope("RNN", reuse=True): 
      with tf.variable_scope("BasicLSTMCell", reuse=True): 
      with tf.variable_scope("Linear", reuse=True): 
       v1 = tf.get_variable("Matrix", [2 * hidden_size, 4 * hidden_size]) 
       print(v1.eval()) 
0

あなたはそれを評価して、あなたのテンソルにアクセスすることができます。たとえばmatrixの値を取得するには、評価する必要があります。以下のように破棄してください: ar = sess.run(matrix) for row in ar: for col in row: # your method to save your data ここで変数がプレースホルダとして使用されているクラスを作成し、以前に保存した読み込みモデルでフィードしてください。

+0

true、セッション内でアクセスしました – flyingmadden

関連する問題