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

时间:2016-09-19 22:21:54

标签: python tensorflow

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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 计算mask_val = sess.run(mask)并打印mask_val.shape
  2. 创建符号mask_shape = tf.shape(mask)张量,计算mask_shape_val = sess.run(mask_shape)并打印`mask_shape。
  3. 如果形状取决于数据,或者张量本身是具有部分已知形状的某些张量的函数,则形状通常具有未知组件。如果你认为面具的形状应该是是静态的,你可以通过(递归地)查看计算mask<div class="_lc_radio_button"> <div class="_radio_holder"> <input value="look_indiv_plan" name="radioButtons" type="radio" id="radioButtons_1" class="input_radio" checked="checked"> </div> <div class="_radio_label_holder"> <label for="radioButtons_1">Looking for an Individual or Family Plan</label> </div> </div> 的操作的输入来追踪不确定性的来源。找出形状部分已知的位置。