SpaceToDepth для тензоров типа T.
Переупорядочивает блоки пространственных данных по глубине. Точнее, эта операция выводит копию входного тензора, в которой значения из измерений «высота» и «ширина» перемещаются в измерение «глубина». Атрибут «block_size» указывает размер входного блока.
* Непересекающиеся блоки размера «block_size x размер блока» переставляются по глубине в каждом месте. * Глубина выходного тензора равна `block_size * block_size * input_length`. * Координаты Y, X внутри каждого блока ввода становятся компонентом высокого порядка индекса выходного канала. * Высота и ширина входного тензора должны делиться на размер блока.
Атрибут `data_format` определяет расположение входных и выходных тензоров со следующими параметрами: "NHWC": `[ пакет, высота, ширина, каналы]` "NCHW": `[ пакет, каналы, высота, ширина]` " NCHW_VECT_C": `qint8 [пакет, каналы / 4, высота, ширина, 4]`
Полезно рассматривать эту операцию как преобразование 6-D тензора. например, для data_format = NHWC, каждый элемент во входном тензоре может быть указан с помощью 6 координат, упорядоченных по уменьшению значимости структуры памяти следующим образом: n,oY,bY,oX,bX,iC (где n = индекс пакета, oX, oY означает X или координаты Y внутри выходного изображения, bX, byY означает координаты внутри входного блока, iC означает входные каналы). Результатом будет преобразование в следующий макет: n,oY,oX,bY,bX,iC.
Эта операция полезна для изменения размера активаций между свертками (но с сохранением всех данных), например, вместо объединения в пул. Это также полезно для обучения чисто сверточных моделей.
Например, для ввода формы `[1, 2, 2, 1]` data_format = "NHWC" и block_size = 2:
x = [[[[1], [2]],
[[3], [4]]]]
Эта операция выведет тензор формы `[1, 1, 1, 4]`: [[[[1, 2, 3, 4]]]]
Здесь вход имеет пакет из 1, и каждый элемент пакета имеет форму `[2, 2, 1]`, соответствующий выход будет иметь один элемент (т.е. ширина и высота равны 1) и будет иметь глубину 4 канала. (1 * размер_блока * размер_блока). Форма выходного элемента — `[1, 1, 4]`.Для входного тензора с большей глубиной, здесь формы `[1, 2, 2, 3]`, например
x = [[[[1, 2, 3], [4, 5, 6]],
[[7, 8, 9], [10, 11, 12]]]]
Эта операция для размера блока, равного 2, вернет следующий тензор формы `[1, 1, 1, 12]` [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
Аналогично, для следующего ввода формы `[1 4 4 1]` и размера блока 2: x = [[[[1], [2], [5], [6]],
[[3], [4], [7], [8]],
[[9], [10], [13], [14]],
[[11], [12], [15], [16]]]]
оператор вернет следующий тензор формы `[1 2 2 4]`: x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]
Вложенные классы
сорт | SpaceToDepth.Параметры | Дополнительные атрибуты для SpaceToDepth |
Константы
Нить | OP_NAME | Название этой операции, известное основному движку TensorFlow. |
Публичные методы
Выход <Т> | какВывод () Возвращает символический дескриптор тензора. |
статический <T расширяет TType > SpaceToDepth <T> | create (Область действия , ввод операнда <T>, длинный размер блока, параметры... ) Фабричный метод для создания класса, обертывающего новую операцию SpaceToDepth. |
статический SpaceToDepth.Options | dataFormat (строка dataFormat) |
Выход <Т> | выход () |
Унаследованные методы
Константы
общедоступная статическая финальная строка OP_NAME
Название этой операции, известное основному движку TensorFlow.
Публичные методы
публичный вывод <T> asOutput ()
Возвращает символический дескриптор тензора.
Входные данные для операций TensorFlow являются выходными данными другой операции TensorFlow. Этот метод используется для получения символического дескриптора, который представляет собой вычисление входных данных.
public static SpaceToDepth <T> create (область области действия , ввод операнда <T>, длинный блокSize, параметры... параметры)
Фабричный метод для создания класса, обертывающего новую операцию SpaceToDepth.
Параметры
объем | текущий объем |
---|---|
размер блока | Размер пространственного блока. |
параметры | содержит значения необязательных атрибутов |
Возврат
- новый экземпляр SpaceToDepth