Spec-Zone.ru › TensorFlow 2.3

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, 2 или 3.

Вычисляет 2-мерную атронную свёртку, также известную как свёртка с отверстиями или разбавленная свёртка, заданные 4-мерные value и filters тензоры. Если параметр rate равен единице, она выполняет обычную 2-мерную свёртку. Если параметр 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 и др., 2015). Такая же операция изучается подробнее в (Yu и др., 2016). Предыдущие работы, которые эффективно использовали атронную свёртку различными способами, включают, помимо прочих, (Sermanet и др., 2014) и (Giusti и др., 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 Необязательное имя возвращаемого тензора.
Возвращает
Tensor с тем же типом, что и value. Форма вывода с заполнением 'VALID' :

[batch, высота - 2 * (ширина_фильтра - 1), ширина - 2 * (высота_фильтра - 1), out_каналы].

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

[batch, высота, ширина, out_каналы].

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

Ссылки:

Мультимасштабное агрегирование контекста с помощью разбавленных свёрток: Yu и др., 2016 (pdf) Семантическая сегментация изображений с глубокими свёрточными сетями и полностью связанными CRFs: Chen и др., 2015 (pdf) OverFeat - Интегрированное распознавание, локализация и обнаружение с помощью свёрточных сетей: Sermanet и др., 2014 (pdf) Быстрое сканирование изображений с помощью глубоких свёрточных нейронных сетей с максимальным пулингом: Giusti и др., 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.3/api_docs/python/tf/nn/atrous_conv2d

Spec-Zone.ru

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