Esta página foi traduzida pela API Cloud Translation.
Switch to English

tf.where

TensorFlow 1 versão Ver fonte no GitHub

Devolver os elementos, onde condition é True (multiplexagem x e y ).

Usado nos cadernos

Usado na guia Usado nos tutoriais

Este operador tem dois modos: um modo em ambos x e y são fornecidos, em um outro modo não são fornecidos. condition é sempre esperado para ser um tf.Tensor do tipo bool .

Recuperando índices de True elementos

Se x e y não são fornecidos (ambos são Nenhum):

tf.where irá retornar os índices de condition que são True , sob a forma de um tensor de 2-D com a forma (n, d). (Em que n é o número de índices correspondentes em condition , e d é o número de dimensões em condition ).

Índices são emitidos na ordem da maior linha.

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]])>

Multiplexagem entre x e y

Se x e y são fornecidos (ambos têm não Nenhum valores):

tf.where irá escolher uma forma de saída a partir das formas de condition , x , e y que todas as três formas são irradiável para.

A condition tensor funciona como uma máscara que escolhe se o correspondente elemento / linha na saída devem ser tomadas a partir de x (se o elemento em condition is True) or y` (se for false).

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 Um tf.Tensor de tipo bool
x Se fornecidos, um tensor que é do mesmo tipo que y , e tem uma forma com irradiável condition e y .
y Se fornecidos, um tensor que é do mesmo tipo que y , e tem uma forma com irradiável condition e x .
name Um nome da operação (opcional).

Se x e y são fornecidos: Um Tensor com o mesmo tipo como x e y , e da forma que é transmitido a partir de condition , x , e y . Caso contrário, um Tensor com a forma (num_true, dim_size(condition)) .

ValueError Quando exatamente um x ou y é não-Nenhum, ou as formas não são todos irradiável.