Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

tf.where

TensorFlow 1 wersja Zobacz źródło na GitHub

Zwraca elementy gdzie condition jest True (multipleksowanie x i y ).

Stosowany w notebookach

Używany w przewodniku Używany w samouczków

Ten operator ma dwa tryby: w jednym trybie zarówno x i y są, w innym trybie nie są zapewnione. condition jest zawsze oczekuje się tf.Tensor typu bool .

Odzyskiwanie wskaźników True elementów

Jeśli x i y nie są (obie nie istnieją):

tf.where zwróci wskaźników condition , który jest True w postaci tensora 2-D w kształcie (n, d). (Gdzie n oznacza liczbę dopasowując indeksy w condition , a d jest liczbą wymiarów w condition ).

Wskaźniki są wyprowadzane w rzędzie major kolejności.

tf.where([True, False, False, True])
<tf.Tensor: shape=(2, 1), dtype=int64, numpy=
array([[0],
       [3]])>
tf.where([[True, False], [False, True]])
<tf.Tensor: shape=(2, 2), dtype=int64, numpy=
array([[0, 0],
       [1, 1]])>
tf.where([[[True, False], [False, True], [True, True]]])
<tf.Tensor: shape=(4, 3), dtype=int64, numpy=
array([[0, 0, 0],
       [0, 1, 1],
       [0, 2, 0],
       [0, 2, 1]])>

Multipleksowanie pomiędzy x i y

Jeśli x i y są (obie nienakładające Brak wartości)

tf.where wybiorą kształt wyjściowy z kształtami condition , x i y , że wszystkie trzy kształty są broadcastable do.

condition napinacz działa jako maska, która określa, czy odpowiadający element / wiersz wyjścia powinien być wzięte z x (jeśli element condition is True) or y` (jeśli jest fałsz).

tf.where([True, False, False, True], [1,2,3,4], [100,200,300,400])
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([  1, 200, 300,   4],
dtype=int32)>
tf.where([True, False, False, True], [1,2,3,4], [100])
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([  1, 100, 100,   4],
dtype=int32)>
tf.where([True, False, False, True], [1,2,3,4], 100)
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([  1, 100, 100,   4],
dtype=int32)>
tf.where([True, False, False, True], 1, 100)
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([  1, 100, 100,   1],
dtype=int32)>
tf.where(True, [1,2,3,4], 100)
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([1, 2, 3, 4],
dtype=int32)>
tf.where(False, [1,2,3,4], 100)
<tf.Tensor: shape=(4,), dtype=int32, numpy=array([100, 100, 100, 100],
dtype=int32)>

condition tf.Tensor typu bool
x Jeżeli występuje, tensora który jest tego samego typu, y i ma broadcastable kształt ze condition i y .
y Jeżeli występuje, tensora który jest tego samego typu, y i ma broadcastable kształt ze condition i x .
name Nazwa operacji (opcjonalnie).

Jeśli x i y są: a Tensor tego samego typu, co x i y , i kształt, który jest nadawany z condition , x i y . W przeciwnym razie, Tensor z kształtem (num_true, dim_size(condition)) .

ValueError Kiedy dokładnie jeden z x lub y nie jest brak, albo kształty nie są broadcastable.