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 esmerged.shape = [max(índices)] + constante
Los valores se fusionan en orden, por lo que si aparece un índice tanto en `índices[m][i]` como en `índices[n][j]` para `(m,i) < (n,j)`, el segmento `datos [n][j]` aparecerá en el resultado combinado. Si no necesita esta garantía, ParallelDynamicStitch podría funcionar mejor en algunos dispositivos.
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.
constantes
Cuerda | OP_NOMBRE | El nombre de esta operación, como lo conoce el motor principal de TensorFlow |
Métodos públicos
Salida <T> | como salida () Devuelve el identificador simbólico del tensor. |
estático <T extiende TType > DynamicStitch <T> | |
Salida <T> | combinado () |
Métodos Heredados
constantes
Cadena final estática pública OP_NAME
El nombre de esta operación, como lo conoce el motor principal de TensorFlow
Métodos públicos
salida pública <T> como salida ()
Devuelve el identificador simbólico del 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 DynamicStitch <T> create ( Scope scope, Iterable< Operand < TInt32 >> índices, Iterable< Operand <T>> data)
Método de fábrica para crear una clase que envuelve una nueva operación DynamicStitch.
Parámetros
alcance | alcance actual |
---|
Devoluciones
- una nueva instancia de DynamicStitch