Tensorflow:如何以保留2D张量形状的方式使用boolean_mask

时间:2018-12-29 02:11:03

标签: python tensorflow

当我使用tf.boolean_mask时,结果被展平。

tensor7 = tf.constant( [[ 0,  1,  2,  3, -1],[ 2,  3,  4, -1, -1],[ 3,  6,  5,  4,  3]], tf.int64)
mask7 = tf.constant([[ True,  True,  True,  True, False],  [ True,  True,  True, False, False], [ True,  True,  True,  True,  True]], tf.bool)
result7=tf.boolean_mask(tensor7, mask7, axis=0)  

with tf.Session() as sess:
    print(sess.run([ result7 ]))
  

array([0,1,2,3,2,3,4,3,6,5,4,4,3])]

有没有办法使用它来保留原始的3数组形状?各个数组的形状应该更改,因为它们现在更短了。我正在寻找这样的东西

  

[array([[0,1,2,3],          [2,3,4],          [3,6,5,4,3]])

1 个答案:

答案 0 :(得分:1)

与您的问题类似的in this feature request进一步指出,您的期望在逻辑上可能并不合理。您将需要具有张量的动态形状,而TensorFlow仅支持有限的张量(例如Ragged Tensors)。