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