Spec-Zone.ru › TensorFlow 2.4

tf.nn.separable_conv2d

Просмотреть исходный код на GitHub

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

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, то все значения шагов должны быть равны 1.
name Имя этой операции (необязательно).
Возвращаемое значение
4-мерный Tensor с формой в соответствии с 'data_format'. Например, при data_format="NHWC", форма — [batch, out_height, out_width, out_channels].

© 2020 The TensorFlow Authors. All rights reserved.
Licensed under the Creative Commons Attribution License 3.0.
Code samples licensed under the Apache 2.0 License.
https://www.tensorflow.org/versions/r2.4/api_docs/python/tf/nn/separable_conv2d

Spec-Zone.ru

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