Spec-Zone.ru › TensorFlow

tf.keras.layers.DepthwiseConv2D

Слой двумерной поканальной свёртки.

Наследует: Layer, Operation

tf.keras.layers.DepthwiseConv2D(
    kernel_size,
    strides=(1, 1),
    padding='valid',
    depth_multiplier=1,
    data_format=None,
    dilation_rate=(1, 1),
    activation=None,
    use_bias=True,
    depthwise_initializer='glorot_uniform',
    bias_initializer='zeros',
    depthwise_regularizer=None,
    bias_regularizer=None,
    activity_regularizer=None,
    depthwise_constraint=None,
    bias_constraint=None,
    **kwargs
)

Используется в блокнотах

Используется в руководстве
  • Прореживание для вывода на устройстве с помощью XNNPACK

Поканальная свёртка — это разновидность свёртки, при которой каждый входной канал свёртывается с отдельным ядром (называемым поканальным ядром). Поканальную свёртку можно рассматривать как первый этап разделимой поканальной свёртки.

Она реализуется следующими шагами:

  • Разделение входных данных на отдельные каналы.
  • Свёртка каждого канала с отдельным поканальным ядром, имеющим depth_multiplier выходных каналов.
  • Объединение результатов свёртки вдоль оси каналов.

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

Аргумент depth_multiplier определяет, сколько фильтров применяется к одному входному каналу. Таким образом, он задаёт количество выходных каналов, создаваемых для каждого входного канала на этапе поканальной свёртки.

Аргументы
kernel_size Целое число или кортеж/список из двух целых чисел, задающий размер окна поканальной свёртки.
strides Целое число или кортеж/список из двух целых чисел, задающий длину шага поканальной свёртки. strides > 1 несовместим с dilation_rate > 1.
padding Строка: "valid" или "same" (без учёта регистра). "valid" означает отсутствие дополнения. При "same" дополнение равномерно добавляется слева и справа либо сверху и снизу входных данных. Если padding="same" и strides=1, размер выходных данных совпадает с размером входных.
depth_multiplier Количество выходных каналов поканальной свёртки для каждого входного канала. Общее количество выходных каналов поканальной свёртки будет равно input_channel * depth_multiplier.
data_format Строка: "channels_last" или "channels_first". Порядок измерений во входных данных. "channels_last" соответствует входным данным формы (batch, height, width, channels), а "channels_first" — входным данным формы (batch, channels, height, width). По умолчанию используется значение image_data_format из файла конфигурации Keras по адресу ~/.keras/keras.json. Если это значение не задано, используется "channels_last".
dilation_rate Целое число или кортеж/список из двух целых чисел, задающий коэффициент разрежения для разреженной свёртки.
activation Функция активации. Если задано None, функция активации не применяется.
use_bias Логическое значение: если задано True, к выходным данным добавляется смещение.
depthwise_initializer Инициализатор ядра свёртки. Если задано None, используется инициализатор по умолчанию ("glorot_uniform").
bias_initializer Инициализатор вектора смещения. Если задано None, используется инициализатор по умолчанию ("zeros").
depthwise_regularizer Необязательный регуляризатор ядра свёртки.
bias_regularizer Необязательный регуляризатор вектора смещения.
activity_regularizer Необязательная функция регуляризации выходных данных.
depthwise_constraint Необязательная функция проекции, применяемая к ядру после его обновления с помощью Optimizer (например, для реализации ограничений нормы или значения весов слоя). Функция должна принимать непроецированную переменную и возвращать проецированную переменную (с той же формой). Ограничения небезопасно использовать при асинхронном распределённом обучении.
bias_constraint Необязательная функция проекции, применяемая к смещению после его обновления с помощью Optimizer.

Форма входных данных:

  • Если задано data_format="channels_last": тензор размерности 4 с формой: (batch_size, height, width, channels)
  • Если задано data_format="channels_first": тензор размерности 4 с формой: (batch_size, channels, height, width)

Форма выходных данных:

  • Если задано data_format="channels_last": тензор размерности 4 с формой: (batch_size, new_height, new_width, channels * depth_multiplier)
  • Если задано data_format="channels_first": тензор размерности 4 с формой: (batch_size, channels * depth_multiplier, new_height, new_width)
Возвращает
Тензор размерности 4, представляющий activation(depthwise_conv2d(inputs, kernel) + bias).
Вызывает исключение
ValueError если одновременно заданы strides > 1 и dilation_rate > 1.

Пример:

x = np.random.rand(4, 10, 10, 12)
y = keras.layers.DepthwiseConv2D(3, 3, activation='relu')(x)
print(y.shape)
(4, 8, 8, 36)
Атрибуты
input Получает входной тензор или входные тензоры символьной операции.

Возвращает только тензор или тензоры, соответствующие первому вызову операции.

output Получает выходной тензор или выходные тензоры слоя.

Возвращает только тензор или тензоры, соответствующие первому вызову операции.

Методы

from_config

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

@classmethod
from_config(
    config
)

Создаёт слой на основе его конфигурации.

Этот метод является обратным по отношению к get_config и позволяет создать такой же слой из словаря конфигурации. Он не обрабатывает связи между слоями (это делает Network) и веса (это делает set_weights).

Аргументы
config Словарь Python, обычно являющийся результатом вызова get_config.
Возвращает
Экземпляр слоя.

symbolic_call

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

symbolic_call(
    *args, **kwargs
)

© 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/api_docs/python/tf/keras/layers/DepthwiseConv2D

Spec-Zone.ru

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