Spec-Zone.ru › TensorFlow 2.9

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].

© 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/versions/r2.9/api_docs/python/tf/nn/separable_conv2d

Spec-Zone.ru

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