多階層のLSTMモデル(stateIsTuple = True)をPythonでビルドしてトレーニングし、C++でロードして使用したいと考えています。しかし、主に私が参照できる文字列名を持っていないため、C++で状態をフィードしフェッチする方法を考えるのは難しいです。テンソルフローC/C++でLSTMの状態を取得して取得する方法
など。
with tf.name_scope('rnn_input_state'):
self.initial_state = cell.zero_state(args.batch_size, tf.float32)
などの名前付きスコープに初期状態を設定しましたが、これは以下のグラフに表示されますが、これらをC++でどのようにフィードできますか?
また、どのように私はC++での現在の状態を取得することができますか?私はpythonでグラフの構築コードを試しましたが、私はそれが正しいことであるかどうかはわかりません。なぜならlast_stateはテンソルのタプルでなければならないからです(テンソルボードのlast_stateノードは2x2x50x128、 2つのレイヤー、128のrnnサイズ、50のミニバッチサイズ、およびlstmセル - 2つの状態ベクトルを持つように、状態を連結したように聞こえます)。
with tf.name_scope('outputs'):
outputs, last_state = legacy_seq2seq.rnn_decoder(inputs, self.initial_state, cell, loop_function=loop if infer else None)
output = tf.reshape(tf.concat(outputs, 1), [-1, args.rnn_size], name='output')
、これはそれが
私はCONCATと内と外出しか一つの状態テンソルがあるので、状態テンソルを分割すべきtensorboardにどのように見えるのですか?それとも良い方法がありますか?
P.S.理想的には、レイヤー(またはrnnサイズ)の数をハードコーディングする必要はありません。ですから、私は4つの文字列input_node_name、output_node_name、input_state_name、output_state_nameを持つことができ、残りはそこから派生しています。