ParallelDynamicStitch

clase final pública ParallelDynamicStitch

Intercala los valores de los tensores `datos` en un solo tensor.

Construye un tensor fusionado tal que

merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
 
Por ejemplo, si cada `índice[m]` es escalar o vectorial, tenemos
# Scalar indices:
     merged[indices[m], ...] = data[m][...]
 
     # Vector indices:
     merged[indices[m][i], ...] = data[m][i, ...]
 
Cada `data[i].shape` debe comenzar con el correspondiente `indice[i]. shape`, y el resto de `data[i].shape` debe ser constante wrt `i`. Es decir, debemos tener `datos[i].forma = índices[i].forma + constante`. En términos de esta `constante`, la forma de salida es

merged.shape = [max(índices)] + constante

Los valores pueden fusionarse en paralelo, por lo que si aparece un índice tanto en `índices[m][i]` como en `índices[n][j]`, el resultado puede no ser válido. Esto difiere del operador DynamicStitch normal que define el comportamiento en ese caso.

Por ejemplo:

indices[0] = 6
     indices[1] = [4, 1]
     indices[2] = [[5, 2], [0, 3]]
     data[0] = [61, 62]
     data[1] = [[41, 42], [11, 12]]
     data[2] = [[[51, 52], [21, 22]], [[1, 2], [31, 32]]]
     merged = [[1, 2], [11, 12], [21, 22], [31, 32], [41, 42],
               [51, 52], [61, 62]]
 
Este método se puede usar para fusionar particiones creadas por `dynamic_partition` como se ilustra en el siguiente ejemplo:
# Apply function (increments x_i) on elements for which a certain condition
     # apply (x_i != -1 in this example).
     x=tf.constant([0.1, -1., 5.2, 4.3, -1., 7.4])
     condition_mask=tf.not_equal(x,tf.constant(-1.))
     partitioned_data = tf.dynamic_partition(
         x, tf.cast(condition_mask, tf.int32) , 2)
     partitioned_data[1] = partitioned_data[1] + 1.0
     condition_indices = tf.dynamic_partition(
         tf.range(tf.shape(x)[0]), tf.cast(condition_mask, tf.int32) , 2)
     x = tf.dynamic_stitch(condition_indices, partitioned_data)
     # Here x=[1.1, -1., 6.2, 5.3, -1, 8.4], the -1. values remain
     # unchanged.
 

Métodos públicos

Salida <T>
como salida ()
Devuelve el identificador simbólico de un tensor.
estática <T> ParallelDynamicStitch <T>
crear ( ámbito de ámbito, iterable< operando <entero>> índices, iterable< operando <T>> datos)
Método de fábrica para crear una clase que envuelve una nueva operación ParallelDynamicStitch.
Salida <T>

Métodos Heredados

Métodos públicos

salida pública <T> como salida ()

Devuelve el identificador simbólico de un tensor.

Las entradas de las operaciones de TensorFlow son salidas de otra operación de TensorFlow. Este método se utiliza para obtener un identificador simbólico que representa el cálculo de la entrada.

public static ParallelDynamicStitch <T> create ( ámbito de alcance, índices iterables < operando <entero>>, datos iterables < operando <T>>)

Método de fábrica para crear una clase que envuelve una nueva operación ParallelDynamicStitch.

Parámetros
alcance alcance actual
Devoluciones
  • una nueva instancia de ParallelDynamicStitch

Salida pública <T> combinada ()