gpt4 book ai didi

python - OperatorNotAllowedInGraphError : using a `tf.Tensor` as a Python `bool` is not allowed in Graph execution

转载 作者:行者123 更新时间:2023-12-04 04:18:56 26 4
gpt4 key购买 nike

我正在尝试执行这些功能

def evaluate(sentence):
sentence = preprocess_sentence(sentence)

sentence = tf.expand_dims(
START_TOKEN + tokenizer.encode(sentence) + END_TOKEN, axis=0)

output = tf.expand_dims(START_TOKEN, 0)

for i in range(MAX_LENGTH):

predictions = model(inputs=[sentence, output], training=False)

# select the last word from the seq_len dimension
predictions = predictions[:, -1:, :]
predicted_id = tf.cast(tf.argmax(predictions, axis=-1), tf.int32)

# return the result if the predicted_id is equal to the end token

if tf.equal(predicted_id, END_TOKEN[0]):
break
#check()
#tf.cond(tf.equal(predicted_id, END_TOKEN[0]),true_fn=break,false_fn=lambda: tf.no_op())


# concatenated the predicted_id to the output which is given to the decoder
# as its input.
output = tf.concat([output, predicted_id], axis=-1)

return tf.squeeze(output, axis=0)


def predict(sentence):
prediction = evaluate(sentence)

predicted_sentence = tokenizer.decode(
[i for i in prediction if i < tokenizer.vocab_size])

print('Input: {}'.format(sentence))
print('Output: {}'.format(predicted_sentence))

return predicted_sentence

然而,我遇到了以下错误:OperatorNotAllowedInGraphError:在图形执行中不允许使用 `tf.Tensor` 作为 Python `bool`。使用 Eager execution 或使用 @tf.function 修饰此函数。我明白我必须以 tf.cond() 的形式重写 if 条件。但是,我不知道如何在 tensorflow 中编写 break,我也不确定是哪个条件导致了问题,因为这个笔记本中的相同功能是否正常工作? https://colab.research.google.com/github/tensorflow/examples/blob/master/community/en/transformer_chatbot.ipynb#scrollTo=_NURhwYz5AXa有帮助吗?

最佳答案

notebook 中的代码之所以有效,是因为它使用了 TF 2.0,默认情况下启用了即时执行。您可以使用 tf.enable_eager_execution 在旧版本中打开它。

或者,如果您使用 tf.function or tf.autograph,您可以在图形模式下使用 break 而无需编写 tf.cond ,但它们对您可以运行的代码有一些限制。

关于python - OperatorNotAllowedInGraphError : using a `tf.Tensor` as a Python `bool` is not allowed in Graph execution,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59914102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com