首页 文章

关于张量形状是(?,?,?,1)

提问于
浏览
0

在调试Tensorflow代码期间,我想输出一个张量的形状,比方说, print("mask's shape is: ",mask.get_shape()) 但是,相应的输出是 mask's shape is (?,?,?,1) 如何解释这种输出,无论如何都知道这个前三个维度的确切值张量?

1 回答

  • 0

    此输出意味着TensorFlow的形状推断仅能够推断 mask 张量的部分形状 . 它能够推断出(i) mask 是一个4-D张量,(ii)它的最后一个维数是1;但它并不静态地知道前三个维度的形状 .

    如果你想得到张量的实际形状,主要的方法是:

    • 计算 mask_val = sess.run(mask) 并打印 mask_val.shape .

    • 创建一个符号 mask_shape = tf.shape(mask) 张量,计算 mask_shape_val = sess.run(mask_shape) 并打印`mask_shape .

    如果形状取决于数据,或者张量本身是具有部分已知形状的某些张量的函数,则形状通常具有未知组件 . 如果您认为掩码的形状为静态,则可以通过(递归地)查看计算 mask 的操作的输入并找出形状部分已知的位置来跟踪不确定性的来源 .

相关问题