DynamicStitch

public final class DynamicStitch

Interleave i valori dai tensori `data` in un singolo tensore.

Costruisce un tensore unito in modo tale che

merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
 
Ad esempio, se ogni `indices [m]` è scalare o vettoriale, abbiamo
# Scalar indices:
     merged[indices[m], ...] = data[m][...]
 
     # Vector indices:
     merged[indices[m][i], ...] = data[m][i, ...]
 
Ogni `data [i] .shape` deve iniziare con i corrispondenti` indici [i] .shape`, e il resto di "data [i] .shape" deve essere costante rispetto a "i". Cioè, dobbiamo avere `data [i] .shape = indices [i] .shape + constant`. In termini di questa "costante", la forma di output è

merged.shape = [max (indici)] + costante

I valori sono uniti in ordine, quindi se un indice appare sia in `indices [m] [i]` che in `indices [n] [j]` per `(m, i) <(n, j)` la fetta `dati [n] [j] `apparirà nel risultato unito. Se non hai bisogno di questa garanzia, ParallelDynamicStitch potrebbe funzionare meglio su alcuni dispositivi.

Ad esempio:

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]]
 
Questo metodo può essere utilizzato per unire le partizioni create da `dynamic_partition` come illustrato nel seguente esempio:
# 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.
 

Metodi pubblici

Uscita <T>
asOutput ()
Restituisce la maniglia simbolica di un tensore.
statico <T> DynamicStitch <T>
create ( ambito ambito, indici < Operando <Integer>> Iterable, dati < Operando <T>> Iterable)
Metodo Factory per creare una classe che avvolge una nuova operazione DynamicStitch.
Uscita <T>
unito ()

Metodi ereditati

Metodi pubblici

output pubblico <T> asOutput ()

Restituisce la maniglia simbolica di un tensore.

Gli input per le operazioni TensorFlow sono output di un'altra operazione TensorFlow. Questo metodo viene utilizzato per ottenere un handle simbolico che rappresenta il calcolo dell'input.

public static DynamicStitch <T> create ( Scope scope, Iterable < Operand <Integer>> indices, Iterable < Operand <T>> data)

Metodo Factory per creare una classe che avvolge una nuova operazione DynamicStitch.

Parametri
scopo ambito attuale
ritorna
  • una nuova istanza di DynamicStitch

output pubblico <T> unito ()