Ich habe eine (n, m)
Tensor X
, wo ich alle Werte kleiner als ein Schwellenwert t
Null setzen möchte. Das heißt,Entfernen Sie kleine Werte aus der Matrix
X = X * tf.cast(tf.greater(X, t), X.dtype)
Ich frage mich, ist es eine effizientere Art und Weise, dies zu tun? Weil X
in meinem Setup ist riesig und wie ich es verstehe, baut die tf.cast(tf.greater(X, t), X.dtype)
einen anderen Tensor, der so viel Speicher wie X
benötigt.
Haben Sie versucht, die 'eval' Methode in Tensorflow, um Ihren Tensor in ein numpy Array zu transformieren und dann eine der folgenden Antworten zu verwenden? –
Ich bin hier nur brainstorming, "tf.add" und "tfsubtract" unterstützen Broadcasting, also sollten sie speichereffizient sein. Kannst du vielleicht versuchen, 't' zu subtrahieren, dann' tf.clip_by_value (...) 'und dann' t' zurück? Intuitiv führt es zu mehr Operationen, aber weniger Speicherverbrauch? –
@RobertLacok Danke für die Eingabe, aber das ist nicht das Gleiche, denke ich. durch Hinzufügen von "t" ersetzen Sie Nullen durch "t" – fabian789