我想在运行时评估张量的形状。我正在计算两组之间的交集。交点的数量是张量的维度x
。在定义图形时,张量的形状设置为[Dimension(None)]
。因此,通常的x.get_shape()
方法只会返回None
。有没有办法None
在运行时评估形状?我可以做sess.run(x)
并获得 numpy 数组的形状,但我希望这是一个编译的操作,以便只返回形状。谢谢!
问问题
1484 次
1 回答
3
这个问题已经有一年的历史了,所以我相信你可能已经找到了你正在寻找的答案。但以防万一其他人会寻找它,我会在这里发布。
答案非常简单——使用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]
于 2019-07-11T10:53:24.200 回答