Spec-Zone.ru › TensorFlow 2.3

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, указывающим явную обрезку в начале и в конце каждого измерения. При использовании явной обрезки и формате данных "NHWC", это должно быть в формате [[0, 0], [pad_top, pad_bottom], [pad_left, pad_right], [0, 0]]. При использовании явной обрезки и формате данных "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.3/api_docs/python/tf/nn/separable_conv2d

Spec-Zone.ru

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