Spec-Zone.ru › TensorFlow C++

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
Operation
output
::tensorflow::Output
Открытые функции
node() const
::tensorflow::Node *
operator::tensorflow::Input() const
operator::tensorflow::Output() const
Открытые статические функции
DataFormat(StringPiece x)
Attrs
Структуры
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API