如何在运行时获得TensorFlow评估形状



我想在运行时评估张量的形状。我正在计算两组之间的交集。相交的数量是张量x的尺寸。在定义图形时,张量的形状设置为[Dimension(None)]。因此,通常的x.get_shape()方法将仅返回None。有没有办法在运行时评估形状None?我可以做sess.run(x)并获得Numpy阵列的形状,但是我希望这是编译的OP,以便只返回形状。谢谢!

这个问题已经有了一个历史了,所以我相信您可能已经找到了要寻找的答案。但是以防万一其他人会寻找它,我会在这里发布。

答案非常简单 - 使用tf.shape方法(请参阅文档)在会话运行时评估输入张量。

示例:

import numpy as np
import tensorflow as tf

input_data = np.zeros((4, 1, 2, 3), np.float32)
with tf.Graph().as_default():
    input_tensor = tf.placeholder(tf.float32, (None, None, None, 3))
    input_tensor_shape = tf.shape(input_tensor)
    with tf.Session() as session:
        shape = input_tensor_shape.eval({input_tensor: input_data}, session)
        print(shape)

输出:
[4 1 2 3]

相关内容

  • 没有找到相关文章

最新更新