2

私はテンソルフローの双方向動的RNNを使ってテキストタグを行っています。 入力の次元を機械加工した後、セッションを実行しようとしました。 これはblstm設定パーツ:ValueError:TensorはTensorと同じグラフからでなければならず、TensorflowのBidirectinal RNNを持つ

fw_lstm_cell = BasicLSTMCell(LSTM_DIMS) 
bw_lstm_cell = BasicLSTMCell(LSTM_DIMS) 

(fw_outputs, bw_outputs), _ = bidirectional_dynamic_rnn(fw_lstm_cell, 
                 bw_lstm_cell, 
                 x_place, 
                 sequence_length=SEQLEN, 
                 dtype='float32') 

このruningている部分:

with tf.Graph().as_default(): 
    # Placehoder Settings 
    x_place, y_place = set_placeholder(BATCH_SIZE, EM_DIMS, MAXLEN) 

    # BLSTM Model Building 
    hlogits = tf_kcpt.build_blstm(x_place) 

    # Compute loss 
    loss = tf_kcpt.get_loss(log_likelihood) 

    # Training 
    train_op = tf_kcpt.training(loss) 

    # load Eval method 
    eval_correct = tf_kcpt.evaluation(logits, y_place) 

    # Session Setting & Init 
    init = tf.global_variables_initializer() 
    sess = tf.Session() 
    sess.run(init) 

    # tensor summary setting 
    summary = tf.summary.merge_all() 
    summary_writer = tf.summary.FileWriter(LOG_DIR, sess.graph) 

    # Save 
    saver = tf.train.Saver() 

    # Run epoch 
    for step in range(EPOCH): 
     start_time = time.time() 

     feed_dict = fill_feed_dict(KCPT_SET['train'], x_place, y_place) 
     _, loss_value = sess.run([train_op, loss], feed_dict=feed_dict) 

しかし、それは私にエラーを与える:

ValueError: Tensor("Shape:0", shape=(1,), dtype=int32) must be from the same graph as Tensor("bidirectional_rnn/fw/fw/stack_2:0", shape=(1,), dtype=int32).

が私を助けをしてください

+0

もっとコードを提供できますか?私はあなたが別々のグラフでそれらを定義していると思います。 –

+0

@MaxWeinzierl私は私の質問を編集しました!コメントしてくれてありがとう。 –

+0

あなたは完全なコードを提供していただけますか? –

答えて

10

TensorFlowは、すべての操作を操作グラフに格納します。このグラフは、どの関数がどこに出力されるかを定義し、最終出力を生成するためにグラフに設定した手順に従うようにすべての関数をリンクします。 1つのグラフのテンソルまたは操作をテンソルに入力しようとすると、別のグラフの操作に失敗します。すべてが同じ実行グラフ上になければなりません。

てみ取り除くwith tf.Graph().as_default():

TensorFlowは、あなたがグラフを指定しない場合に参照されるデフォルトのグラフを提供します。あなたはおそらく、1つの場所でデフォルトグラフを使用しており、トレーニングブロック内の別のグラフを使用しています。

ここではデフォルトとしてグラフを指定しているわけではなく、おそらく別のグラフを使用している可能性があります。実際にグラフを指定したい場合、おそらくこれを変数として渡し、このように設定しないことにします。

+0

ありがとう!私はあなたの答えによってこの問題を解決しました。 –

+0

ありがとう、良い日があることを祈っています! –

関連する問題