gpt4 book ai didi

python - 在 tensorflow 中,有没有一种方法可以在构建图形时找出元素输出的形状(排名)?

转载 作者:太空宇宙 更新时间:2023-11-03 20:24:34 25 4
gpt4 key购买 nike

我正在尝试在 tensorflow 中构建一个图。但这给了我一个错误,我的形状等级错误。所以,我试图找出哪里出了问题。在构建图表时是否有机会找出元素输出的形状?

例如我的代码是:

def inference_decoding_layer(start_token, end_token, embeddings, dec_cell, initial_state, output_layer,
max_summary_length, batch_size):
'''Create the inference logits'''


start_tokens = tf.tile(tf.constant([start_token], dtype=tf.int32), [batch_size], name='start_tokens')

inference_helper = tf.contrib.seq2seq.GreedyEmbeddingHelper(embeddings, #shape (2000,25,768)
start_tokens,
end_token)


inference_decoder = tf.contrib.seq2seq.BasicDecoder(dec_cell,
inference_helper,
initial_state,
output_layer)

inference_logits, _ , _ = tf.contrib.seq2seq.dynamic_decode(inference_decoder,
output_time_major=False,
impute_finished=True,
maximum_iterations=max_summary_length)

return inference_decoder

问题出现在dynamic_decoder 处。这是错误:

ValueError: Shape must be rank 3 but is rank 2 for 'decode/decoder/while/BasicDecoderStep/decoder/attention_wrapper/concat_6' (op: 'ConcatV2') with input shapes: [32,25,768], [32,256], [].

所以,我想知道是否有一种方法可以找出,例如,我们从 GreedyEmbeddingHelper 获得的值的形状,然后从 BasicDecoder 获得的值的形状......或者也许是我的整个代码中的其他东西。所以,我会找出问题所在。

附注如果有任何其他方法/建议来定位这种情况下的问题,我将非常感激!

最佳答案

为了方便调试,引入了eager模式。使用 eager 模式,您可以在执行每行代码后继续打印输出形状。

在 TF 1.x 中,要启用它,您必须运行以下代码:

tf.enable_eager_execution()

在 TF 2.0 中,默认情况下会启用 eager 模式。此外,您正在处理的包已移至 TensorFlow Addons在TF 2.0中。

关于python - 在 tensorflow 中,有没有一种方法可以在构建图形时找出元素输出的形状(排名)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57937696/

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