当我使用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]])
答案 0 :(得分:1)
与您的问题类似的in this feature request进一步指出,您的期望在逻辑上可能并不合理。您将需要具有张量的动态形状,而TensorFlow仅支持有限的张量(例如Ragged Tensors)。