Чередуйте значения из тензоров данных в один тензор.
Создает объединенный тензор так, что
merged[indices[m][i, ..., j], ...] = data[m][i, ..., j, ...]
Например, если каждый `indices[m]` является скаляром или вектором, у нас есть # Scalar indices:
merged[indices[m], ...] = data[m][...]
# Vector indices:
merged[indices[m][i], ...] = data[m][i, ...]
Каждый `data[i].shape` должен начинаться с соответствующего `indices[i]. shape`, а остальная часть `data[i].shape` должна быть постоянной относительно `i`. То есть у нас должно быть `data[i].shape = index[i].shape + константа`. С точки зрения этой «константы», выходная форма имеет видmerged.shape = [макс(индексы)] + константа
Значения можно объединять параллельно, поэтому, если индекс присутствует как в индексах[m][i]`, так и в индексах[n][j]`, результат может быть недействительным. Это отличается от обычного оператора DynamicStitch, который определяет поведение в этом случае.
Например:
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]]
Этот метод можно использовать для объединения разделов, созданных с помощью `dynamic_partition`, как показано в следующем примере: # 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.
![](https://tensorflow.google.cn/images/DynamicStitch.png?authuser=8&hl=ru)
Публичные методы
Выход <Т> | какВывод () Возвращает символический дескриптор тензора. |
статический <T> ParallelDynamicStitch <T> | create (область области действия , индексы Iterable< Operand <Integer>>, данные Iterable< Operand <T>>) Фабричный метод для создания класса, обертывающего новую операцию ParallelDynamicStitch. |
Выход <Т> | объединено () |
Унаследованные методы
Публичные методы
публичный вывод <T> asOutput ()
Возвращает символический дескриптор тензора.
Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.
public static ParallelDynamicStitch <T> create (область действия , индексы Iterable< Operand <Integer>>, данные Iterable< Operand <T>>)
Фабричный метод для создания класса, обертывающего новую операцию ParallelDynamicStitch.
Параметры
объем | текущий объем |
---|
Возврат
- новый экземпляр ParallelDynamicStitch