Spec-Zone.ru › TensorFlow 2.4

tf.nn.atrous_conv2d

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

Атропное свёртки (также известное как свёртки с отверстиями или разряженная свёртки).

Просмотр псевдонимов

Псевдонимы совместимости для миграции

См. Руководство по миграции для получения более подробной информации.

tf.compat.v1.nn.atrous_conv2d

tf.nn.atrous_conv2d(
    value, filters, rate, padding, name=None
)

Эта функция является более простым обёрткой над более общей tf.nn.convolution и существует только для обратной совместимости. Вы можете использовать tf.nn.convolution для выполнения 1-D, 2-D или 3-D атропной свёртки.

Вычисляет 2-D атропную свёртку, также известную как свёртку с отверстиями или разряженную свёртку, заданные 4-мерные value и filters тензоры. Если параметр rate равен единице, она выполняет обычную 2-D свёртку. Если параметр rate больше единицы, она выполняет свёртку с отверстиями, выбирая значения входных данных через каждые rate пикселей в height и width измерениях. Это эквивалентно свёртке входа с набором увеличенных фильтров, созданных путём вставки rate - 1 нулей между двумя последовательными значениями фильтров вдоль height и width измерений, отсюда и название атропная свёртка или свёртка с отверстиями (французское слово trous означает отверстия на английском языке).

Более конкретно:

output[batch, height, width, out_channel] =
    sum_{dheight, dwidth, in_channel} (
        filters[dheight, dwidth, in_channel, out_channel] *
        value[batch, height + rate*dheight, width + rate*dwidth, in_channel]
    )

Атропная свёртка позволяет нам явно управлять плотностью вычисления ответов функций в полносвязных сетях. В сочетании с билинейной интерполяцией она предлагает альтернативу conv2d_transpose в задачах плотного прогнозирования, таких как семантическая сегментация изображений, вычисление оптического потока или оценка глубины. Она также позволяет нам эффективно расширить поле зрения фильтров без увеличения количества параметров или объёма вычислений.

Для описания атропной свёртки и того, как её можно использовать для плотной экстракции признаков, см.: (Chen et al., 2015). Та же операция изучается дальше в (Yu et al., 2016). Предыдущие работы, которые эффективно используют атропную свёртку различными способами, включают, среди прочих, (Sermanet et al., 2014) и (Giusti et al., 2013). Атропная свёртка также тесно связана с так называемыми благородными тождествами в обработке многоскоростных сигналов.

Существует много различных способов реализации атропной свёртки (см. ссылки выше). Реализация здесь сводится

atrous_conv2d(value, filters, rate, padding=padding)

к следующим трём операциям:

paddings = ...
net = space_to_batch(value, paddings, block_size=rate)
net = conv2d(net, filters, strides=[1, 1, 1, 1], padding="VALID")
crops = ...
net = batch_to_space(net, crops, block_size=rate)

Расширенное использование. Обратите внимание на следующую оптимизацию: Последовательность atrous_conv2d операций с одинаковыми rate параметрами, «SAME» padding, и фильтрами с нечётными высотами/ширинами:

net = atrous_conv2d(net, filters1, rate, padding="SAME")
net = atrous_conv2d(net, filters2, rate, padding="SAME")
...
net = atrous_conv2d(net, filtersK, rate, padding="SAME")

может быть эквивалентно выполнена дешевле с точки зрения вычислений и памяти как:

pad = ...  # padding so that the input dims are multiples of rate
net = space_to_batch(net, paddings=pad, block_size=rate)
net = conv2d(net, filters1, strides=[1, 1, 1, 1], padding="SAME")
net = conv2d(net, filters2, strides=[1, 1, 1, 1], padding="SAME")
...
net = conv2d(net, filtersK, strides=[1, 1, 1, 1], padding="SAME")
net = batch_to_space(net, crops=pad, block_size=rate)

потому что пара последовательных space_to_batch и batch_to_space операций с одинаковыми block_size параметрами взаимно компенсируются, когда их соответствующие paddings и crops входные данные идентичны.

Аргументы
value 4-мерный Tensor типа float. Он должен быть в формате по умолчанию "NHWC". Его форма — [batch, in_height, in_width, in_channels].
filters 4-мерный Tensor с тем же типом, что и value и формой [filter_height, filter_width, in_channels, out_channels]. filters' in_channels измерение должно совпадать с value. Атропная свёртка эквивалентна стандартной свёртке с увеличенными фильтрами с эффективной высотой filter_height + (filter_height - 1) * (rate - 1) и эффективной шириной filter_width + (filter_width - 1) * (rate - 1), полученных путём вставки rate - 1 нулей вдоль последовательных элементов по filters пространственным измерениям.
rate Положительное целое число int32. Шаг, с которым мы выбираем значения входных данных по height и width измерениям. Эквивалентно, частота, с которой мы увеличиваем значения фильтров, вставляя нули по height и width измерениям. В литературе тот же параметр иногда называют input stride или dilation.
padding Строка, либо 'VALID' или 'SAME'. Алгоритм заполнения.
name Необязательное имя для возвращаемого тензора.
Возвращаемое значение
A Tensor с тем же типом, что и value. Форма вывода с 'VALID' заполнением:

[batch, height - 2 * (filter_width - 1), width - 2 * (filter_height - 1), out_channels].

Форма вывода с 'SAME' заполнением:

[batch, height, width, out_channels].

Исключения
ValueError Если глубина входа/выхода не соответствует форме filters, или если заполнение отличается от 'VALID' или 'SAME'.

Ссылки:

Агрегирование контекста по нескольким масштабам с помощью разряженных свёрток: Yu et al., 2016 (pdf) Семантическая сегментация изображений с глубокими свёрточными сетями и полносвязными CRFs: Chen et al., 2015 (pdf) OverFeat - Интегрированное распознавание, локализация и обнаружение с помощью свёрточных сетей: Sermanet et al., 2014 (pdf) Быстрое сканирование изображений с глубокими свёрточными нейронными сетями с максимальным пулингом: Giusti et al., 2013 (pdf)

© 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/atrous_conv2d

Spec-Zone.ru

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