ValueError: Tensor muss aus dem gleichen Graphen als Tensor mit Bidirectinal RNN in Tensorflow
Mache ich text-tagger über Bidirektionale dynamische RNN in tensorflow.
Nachdem die Maschine auf der Eingabe der dimension, ich habe versucht, führen Sie eine Sitzung.
dies ist blstm Einstellung teilen:
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')
- und das ist der Tarantel Teil:
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)
Aber, es gibt mir die Fehlermeldung:
ValueError: Tensor("Form:0", shape=(1,), dtype= "int32") müssen aus dem gleichen Graphen als Tensor("bidirectional_rnn/fw/fw/stack_2:0", shape=(1,), dtype= "int32").
Helfen Sie mir, bitte
- Könnten Sie mehr von dem code? Ich glaube, Sie haben möglicherweise Sie definiert auf separaten Graphen.
- Ich bearbeitet meine Frage! vielen Dank für die Kommentare.
- Könntest du bitte den vollständigen code??
Du musst angemeldet sein, um einen Kommentar abzugeben.
TensorFlow speichert alle Operationen auf einer operativen graph. Dieser graph definiert, welche Funktionen die Ausgabe, wo, und es verbindet Sie alle zusammen, so dass es Folgen Sie den Schritten, die Sie eingerichtet haben, in der Grafik zu produzieren, die endgültige Ausgabe. Wenn Sie versuchen, Sie zur Eingabe eines Tensor-oder-operation an einem Graphen in einem Tensor oder dem Betrieb auf einem anderen Diagramm wird es scheitern. Alles muss auf der gleichen Ausführung graph.
Versuchen, entfernen
with tf.Graph().as_default():
TensorFlow bietet Ihnen eine Standard-graph bezeichnet, wenn Sie nicht geben Sie einen Graphen. Sie sind wohl mit den default-graph in einem Ort und eine andere Grafik, die in Ihrer Ausbildung blockieren.
Es scheint nicht zu einem Grund, den Sie angeben, einen Graphen als default hier und wahrscheinlich, Sie sind mit separaten Grafiken auf dem Unfall. Wenn Sie wirklich wollen, geben Sie einen Graphen, dann wollen Sie wahrscheinlich, um es zu übergeben, da eine variable nicht gesetzt, wie diese.
tf.reset_default_graph()
und führen Sie dann alle code-Blöcken wieder. diese oft behebt das problem