SpaceToBatchNd

публичный финальный класс SpaceToBatchNd

SpaceToBatch для ND-тензоров типа T.

Эта операция делит «пространственные» измерения `[1, ..., M]` входных данных на сетку блоков формы `block_shape` и чередует эти блоки с «пакетным» размером (0), так что на выходе , пространственные размеры `[1, ..., M]` соответствуют положению в сетке, а размерность пакета объединяет как положение внутри пространственного блока, так и исходное положение пакета. Перед разделением на блоки пространственные измерения ввода необязательно дополняются нулями в соответствии с «дополнениями». Подробное описание смотрите ниже.

Публичные методы

Выход <Т>
какВывод ()
Возвращает символический дескриптор тензора.
static <T, U расширяет число, V расширяет число> SpaceToBatchNd <T>
create (область области действия , ввод операнда <T>, операнд <U> blockShape, отступы операнда <V>)
Фабричный метод для создания класса, обертывающего новую операцию SpaceToBatchNd.
Выход <Т>

Унаследованные методы

Публичные методы

публичный вывод <T> asOutput ()

Возвращает символический дескриптор тензора.

Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.

public static SpaceToBatchNd <T> create (область области действия , ввод операнда <T>, блок-форма операнда <U>, дополнения операнда <V>)

Фабричный метод для создания класса, обертывающего новую операцию SpaceToBatchNd.

Параметры
объем текущий объем
вход ND с формой `input_shape = [batch] + пространственная_форма + оставшаяся_форма`, где пространственная_форма имеет размеры `M`.
блокшапе 1-D с формой `[M]`, все значения должны быть >= 1.
прокладки 2-D с формой `[M, 2]`, все значения должны быть >= 0. `paddings[i] = [pad_start,pad_end]` задает заполнение для входного измерения `i + 1`, которое соответствует пространственному измерению. `я`. Требуется, чтобы `block_shape[i]` делил `input_shape[i + 1] +pad_start +pad_end`.

Эта операция эквивалентна следующим шагам:

1. Заполните нулями начало и конец размеров `[1, ..., M]` входных данных в соответствии с `дополнениями`, чтобы получить `дополненный` формы `padded_shape`.

2. Измените форму «padded» на «reshape_padded»:

[пакет] + [дополненная_форма[1] / форма_блока[0], форма_блока[0], ..., форма_блока[M] / форма_блока[М-1], форма_блока[М-1]] + оставшаяся_форма

3. Измените размеры reshape_padded, чтобы получить форму permuted_re shape_padded:

форма_блока + [пакет] + [форма_блока[1] / форма_блока[0], ..., форма_блока[M] / форма_блока[M-1]] + оставшаяся_форма

4. Измените форму `permuted_reshape_padded`, чтобы сгладить `block_shape` в размер пакета, создав выходной тензор формы:

[batch * prod(block_shape)] + [padded_shape[1]/block_shape[0], ..., дополненная_форма[M]/block_shape[M-1]] + rest_shape

Некоторые примеры:

(1) Для следующего ввода формы `[1, 2, 2, 1]`, `block_shape = [2, 2]` и `paddings = [[0, 0], [0, 0]]`:

x = [[[[1], [2]], [[3], [4]]]]
 
Выходной тензор имеет форму `[4, 1, 1, 1]` и значение:
[[[[1]]], [[[2]]], [[[3]]], [[[4]]]]
 
(2) Для следующих входных данных формы `[1, 2, 2, 3]` `block_shape = [ 2, 2]` и `paddings = [[0, 0], [0, 0]]`:
x = [[[[1, 2, 3], [4, 5, 6]],
       [[7, 8, 9], [10, 11, 12]]]]
 
Выходной тензор имеет форму `[4, 1, 1, 3]` и значение:
[[[[1, 2, 3]]], [[[4, 5, 6]]], [[[7, 8, 9]]], [[[10, 11, 12]]]]
 
(3) Для следующего ввода формы `[1, 4, 4, 1]`, `block_shape = [2, 2]` и `paddings = [[0, 0], [0, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]],
       [[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Выходной тензор имеет форму `[4, 2, 2, 1]` и значение:
x = [[[[1], [3]], [[9], [11]]],
      [[[2], [4]], [[10], [12]]],
      [[[5], [7]], [[13], [15]]],
      [[[6], [8]], [[14], [16]]]]
 
(4) Для следующих входных данных формы `[2, 2, 4, 1]`, block_shape = `[ 2, 2]` и отступы = `[[0, 0], [2, 0]]`:
x = [[[[1],   [2],  [3],  [4]],
       [[5],   [6],  [7],  [8]]],
      [[[9],  [10], [11],  [12]],
       [[13], [14], [15],  [16]]]]
 
Выходной тензор имеет форму `[8, 1, 3, 1]` и значение:
x = [[[[0], [1], [3]]], [[[0], [9], [11]]],
      [[[0], [2], [4]]], [[[0], [10], [12]]],
      [[[0], [5], [7]]], [[[0], [13], [15]]],
      [[[0], [6], [8]]], [[[0], [14], [16]]]]
 
Помимо прочего, эта операция полезна для превращения агрессивной свертки в обычную.

Возврат
  • новый экземпляр SpaceToBatchNd

публичный вывод <T> вывод ()