tensorflow::ops::DepthToSpace
#include <array_ops.h>
DepthToSpace для тензоров типа T.
Краткое описание
Переставляет данные из глубины в блоки пространственных данных. Это обратное преобразование SpaceToDepth. В частности, эта операция возвращает копию входного тензора, в которой значения из измерения depth перемещаются пространственными блоками в измерения height и width. Атрибут block_size задает размер блока входных данных и способ перемещения данных.
- Фрагменты данных размером
block_size * block_sizeиз глубины переставляются в неперекрывающиеся блоки размеромblock_size x block_size - Ширина выходного тензора равна
input_depth * block_size, а высота —input_height * block_size. - Координаты Y и X в каждом блоке выходного изображения определяются старшими разрядами индекса входного канала.
- Глубина входного тензора должна делиться на
block_size * block_size.
Атрибут data_format задает формат входных и выходных тензоров и может принимать следующие значения: "NHWC": [ batch, height, width, channels ] "NCHW": [ batch, channels, height, width ] "NCHW_VECT_C": qint8 [ batch, channels / 4, height, width, 4 ]
Полезно рассматривать операцию как преобразование 6-мерного тензора. Например, для data_format = NHWC каждый элемент входного тензора можно задать шестью координатами, упорядоченными по убыванию значимости в раскладке памяти: n,iY,iX,bY,bX,oC (где n — индекс пакета, iX, iY — координаты X или Y во входном изображении, bX, bY — координаты в выходном блоке, oC — выходные каналы). Выходные данные будут представлять собой входные данные, транспонированные в следующую раскладку: n,iY,bY,iX,bX,oC
Эта операция полезна для изменения размера активаций между свертками (при сохранении всех данных), например вместо пулинга. Она также полезна для обучения моделей, состоящих только из сверточных слоев.
Например, для входных данных формы [1, 1, 1, 4], data_format = "NHWC" и block_size = 2:
x = [[[[1, 2, 3, 4]]]]
Эта операция вернет тензор формы [1, 2, 2, 1]:
[[[[1], [2]], [[3], [4]]]]
Здесь входные данные содержат один пакет, и каждый элемент пакета имеет форму [1, 1, 4]; соответствующий выходной тензор будет иметь элементы 2x2 и глубину в 1 канал (1 = 4 / (block_size * block_size)). Форма элемента выходного тензора — [2, 2, 1].
Для входного тензора с большей глубиной, в данном случае формы [1, 1, 1, 12], например:
x = [[[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]]]]
Эта операция с размером блока 2 вернет следующий тензор формы [1, 2, 2, 3]
[[[[1, 2, 3], [4, 5, 6]], [[7, 8, 9], [10, 11, 12]]]]
Аналогично, для следующих входных данных формы [1 2 2 4] и размера блока 2:
x = [[[[1, 2, 3, 4],
[5, 6, 7, 8]],
[[9, 10, 11, 12],
[13, 14, 15, 16]]]]оператор вернет следующий тензор формы [1 4 4 1]:
x = [[[ [1], [2], [5], [6]],
[ [3], [4], [7], [8]],
[ [9], [10], [13], [14]],
[ [11], [12], [15], [16]]]]Аргументы:
- scope: объект Scope
- block_size: размер пространственного блока, такой же, как в Space2Depth.
Возвращает:
-
Output: выходной тензор.
| Конструкторы и деструкторы | |
|---|---|
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size) | |
DepthToSpace(const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs) |
| Открытые атрибуты | |
|---|---|
operation | |
output | |
| Открытые функции | |
|---|---|
node() const | ::tensorflow::Node * |
operator::tensorflow::Input() const | |
operator::tensorflow::Output() const | |
| Открытые статические функции | |
|---|---|
DataFormat(StringPiece x) | |
| Структуры | |
|---|---|
| tensorflow::ops::DepthToSpace::Attrs | Настройки необязательных атрибутов для DepthToSpace. |
Открытые атрибуты
operation
Operation operation
output
::tensorflow::Output output
Открытые функции
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size )
DepthToSpace
DepthToSpace( const ::tensorflow::Scope & scope, ::tensorflow::Input input, int64 block_size, const DepthToSpace::Attrs & attrs )
node
::tensorflow::Node * node() const
operator::tensorflow::Input
operator::tensorflow::Input() const
operator::tensorflow::Output
operator::tensorflow::Output() const
Открытые статические функции
DataFormat
Attrs DataFormat( StringPiece x )
© 2022 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 4.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/api_docs/cc/class/tensorflow/ops/depth-to-space