groupnorm

Нормируйте активации через группы каналов

    Описание

    Операция нормализации группы делит каналы входных данных в группы и нормирует активации через каждую группу. Чтобы ускорить обучение сверточных нейронных сетей и уменьшать чувствительность к сетевой инициализации, используйте нормализацию группы между сверткой и нелинейными операциями такой как relu. Можно выполнить нормализацию экземпляра и нормализацию слоя путем определения соответствующего номера групп.

    Примечание

    Эта функция применяет операцию нормализации группы к dlarray данные. Если вы хотите применить нормализацию партии. в layerGraph объект или Layer массив, используйте следующий слой:

    пример

    dlY = groupnorm(dlX,numGroups,offset,scaleFactor) нормирует каждое наблюдение в dlX через группы каналов, заданных numGroups, затем применяет масштабный коэффициент и смещение к каждому каналу.

    Нормированная активация вычисляется с помощью следующей формулы:

    x^i=xiμgσg2+ε

    где xi является входной активацией, μg и σg2 являются средним значением на группу и отклонением, соответственно, и ε является маленькой константой. Среднее значение и отклонение вычисляются на наблюдение по всему 'S' (пространственный), 'T' (время) и 'U' (незаданные) размерности в dlX для каждой группы каналов.

    Нормированная активация возмещается и масштабируется согласно следующей формуле:

    yi=γx^i+β.

    Смещение β и масштабный коэффициент γ задано с offset и scaleFactor аргументы.

    Вход dlX отформатированный dlarray с метками размерности. Выход dlY отформатированный dlarray с той же размерностью помечает как dlX.

    пример

    dlY = groupnorm(___,'DataFormat',FMT) также задает формат размерности FMT когда dlX не отформатированный dlarray в дополнение к входным параметрам в предыдущих синтаксисах. Выход dlY бесформатный dlarray с той же размерностью заказывают как dlX.

    пример

    dlY = groupnorm(___Name,Value) задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущих синтаксисах. Например, 'Epsilon',3e-5 устанавливает смещение отклонения.

    Примеры

    свернуть все

    Использование groupnorm нормировать входные данные через группы канала.

    Создайте входные данные как одно наблюдение за случайными значениями с высотой и шириной четырех и шести каналов.

    height = 4;
    width = 4;
    channels = 6;
    observations = 1;
    
    X = rand(height,width,channels,observations);
    dlX = dlarray(X,'SSCB');

    Создайте настраиваемые параметры.

    offset = zeros(channels,1);
    scaleFactor = ones(channels,1);

    Вычислите нормализацию группы. Разделите вход на три группы из двух каналов каждый.

    numGroups = 3;
    dlY = groupnorm(dlX,numGroups,offset,scaleFactor);
    

    Входные параметры

    свернуть все

    Входные данные в виде dlarray с или без меток размерности или числового массива. Когда dlX не отформатированный dlarray, необходимо задать формат этикетки размерности с помощью 'DataFormat',FMT. Если dlX числовой массив, по крайней мере один из offset или scaleFactor должен быть dlarray.

    dlX должен иметь 'C' размерность канала.

    Типы данных: single | double

    Группы канала, чтобы нормировать через в виде положительного целого числа, "all-channels", или "channel-wise".

    numGroupsОписание
    положительное целое числоФункция делит количество каналов в dlX в конкретное количество групп. Конкретное количество групп должно точно разделить количество каналов в dlX.
    "all-channels"Все каналы в dlX объединены в одну группу. Входные данные нормированы через все каналы. Этот тип нормализации также известен как нормализацию слоя.
    "channel-wise"Каждый канал в dlX рассматривается как одну группу и нормирован отдельно. Этот тип нормализации также известен как нормализацию экземпляра.

    Типы данных: single | double | char | string

    Канал возместил β в виде dlarray вектор с или без меток размерности или числового вектора.

    Если offset отформатированный dlarray, это должно содержать 'C' размерность одного размера с 'C' размерность входных данных.

    Типы данных: single | double

    Масштабный коэффициент канала γ в виде dlarray вектор с или без меток размерности или числового вектора.

    Если scaleFactor отформатированный dlarray, это должно содержать 'C' размерность одного размера с 'C' размерность входных данных.

    Типы данных: single | double

    Аргументы в виде пар имя-значение

    Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

    Пример: 'Epsilon',3e-5 устанавливает смещение отклонения к 3e-5 и 0.5, соответственно.

    Порядок размерности бесформатных входных данных в виде разделенной запятой пары, состоящей из 'DataFormat' и символьный массив или строка FMT это обеспечивает метку для каждой размерности данных. Каждый символ в FMT должно быть одно из следующего:

    • 'S' — Пространственный

    • 'C' — Канал

    • 'B' — Пакет (например, выборки и наблюдения)

    • 'T' — Время (например, последовательности)

    • 'U' — Незаданный

    Можно указать, что несколько размерностей пометили 'S' или 'U'. Можно использовать, маркирует 'C'B, и 'T' самое большее однажды.

    Необходимо задать 'DataFormat' когда входные данные dlX не отформатированный dlarray.

    Пример: 'DataFormat','SSCB'

    Типы данных: char | string

    Смещение отклонения для предотвращения делит на нуль ошибки в виде разделенной запятой пары, состоящей из 'Epsilon' и числовой скаляр. Заданное значение должно быть больше 1e-5. Значением по умолчанию является 1e-5.

    Типы данных: single | double

    Выходные аргументы

    свернуть все

    Нормированные данные, возвращенные как dlarray. Выход dlY имеет тот же базовый тип данных как вход dlX.

    Если входные данные dlX отформатированный dlarray, dlY имеет те же метки размерности как dlX. Если входными данными не является отформатированный dlarray, dlY бесформатный dlarray с той же размерностью заказывают как входные данные.

    Больше о

    свернуть все

    Нормализация группы

    groupnorm функция нормирует каждый входной канал мини-пакета данных. Для получения дополнительной информации см. определение Слоя Нормализации Группы на groupNormalizationLayer страница с описанием.

    Расширенные возможности

    Введенный в R2020b