Spec-Zone.ru › TensorFlow

tf.nn.separable_conv2d

Двумерная свёртка с разделительными фильтрами.

tf.nn.separable_conv2d(
    input,
    depthwise_filter,
    pointwise_filter,
    strides,
    padding,
    data_format=None,
    dilations=None,
    name=None
)

Выполняет свёртку по каналам, действуя раздельно на каждый из них, а затем точечную свёртку, которая объединяет каналы. Обратите внимание, что это разделимость по измерениям [1, 2] и 3, а не пространственная разделимость по измерениям 1 и 2.

Подробно, используя формат NHWC по умолчанию:

output[b, i, j, k] = sum_{di, dj, q, r}
    input[b, strides[1] * i + di, strides[2] * j + dj, q] *
    depthwise_filter[di, dj, q, r] *
    pointwise_filter[0, 0, q * channel_multiplier + r, k]

strides управляет шагами только для свёртки по глубине, так как точечная свёртка имеет неявные шаги [1, 1, 1, 1]. Должно выполняться условие strides[0] = strides[3] = 1. Для наиболее распространённого случая одинаковых горизонтальных и вертикальных шагов, strides = [1, stride, stride, 1]. Если любое значение в rate больше 1, то мы выполняем атронную свёртку по глубине, в этом случае все значения в тензоре strides должны быть равны 1.

Аргументы
input 4-мерный Tensor с формой в соответствии с data_format.
depthwise_filter 4-мерный Tensor с формой [filter_height, filter_width, in_channels, channel_multiplier]. Содержит in_channels свёртки фильтры глубиной 1.
pointwise_filter 4-мерный Tensor с формой [1, 1, channel_multiplier * in_channels, out_channels]. Точечный фильтр для объединения каналов после того, как depthwise_filter выполнил пространственную свёртку.
strides 1-мерный массив длины 4. Шаги для свёртки по глубине для каждого измерения input.
padding Управляет тем, как заполнить изображение перед применением свёртки по глубине. Может быть строкой "SAME" или "VALID", указывающей тип алгоритма заполнения, или списком Python, указывающим явное заполнение в начале и в конце каждого измерения. Когда используется явное заполнение и data_format равен "NHWC", это должно быть в форме [[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]]. Когда используется явное заполнение и data_format равен "NCHW", это должно быть в форме [[0, 0], [0, 0], [pad_top, pad_bottom], [pad_left, pad_right]].
data_format Формат данных на входе. Либо "NHWC" (по умолчанию), либо "NCHW".
dilations 1-мерный массив размера 2. Скорость наращивания в котором мы выбираем значения входных данных по измерениям height и width в атронной свёртке. Если она больше 1, то все значения strides должны быть 1.
name Имя этой операции (необязательно).
Возвращаемое значение
4-мерный Tensor с формой в соответствии с 'data_format'. Например, при data_format="NHWC", форма — [batch, out_height, out_width, out_channels].

© 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/python/tf/nn/separable_conv2d

Spec-Zone.ru

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