Genau wie die Frage sagt, ich versuche, alle Nullen Vektoren (d. H. [0, 0, 0, 0]
) von einem Tensor zu entfernen.Entfernen Sie Null Vektoren aus einer Matrix in TensorFlow
Gegeben:
array([[ 0. , 0. , 0. , 0. ],
[ 0.19999981, 0.5 , 0. , 0. ],
[ 0.4000001 , 0.29999995, 0.10000002, 0. ],
...,
[-0.5999999 , 0. , -0.0999999 , -0.20000005],
[-0.29999971, -0.4000001 , -0.30000019, -0.5 ],
[ 0. , 0. , 0. , 0. ]], dtype=float32)
ich den folgenden Code versucht hatte (inspiriert von this SO):
x = tf.placeholder(tf.float32, shape=(10000, 4))
zeros_vector = tf.zeros(shape=(1, 4), dtype=tf.float32)
bool_mask = tf.not_equal(x, zero_vector)
omit_zeros = tf.boolean_mask(x, bool_mask)
Aber bool_mask
scheinen auch von Form (10000, 4) zu sein, wie es war Vergleichen jedes Elements im x
Tensor mit Null und nicht Zeilen.
Ich dachte über die Verwendung tf.reduce_sum
, wo eine ganze Zeile Null ist, aber das wird auch Zeilen wie [1, -1, 0, 0]
weglassen und ich will das nicht.
Ideen?
kann ich nicht glauben, dass ich herausgefunden habe "reduce_sum" und dachte nicht an "abs". scheint eine legitime Lösung, ich werde versuchen, sicherzustellen, dass es funktioniert und upvote + akzeptieren, falls zutreffend – bluesummers