РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
323 of 769 menu

Класс LocalResponseNorm

Класс LocalResponseNorm применяет локальную нормализацию ответов (Local Response Normalization, LRN) к входному тензору. Этот метод нормализует значения активаций в локальных окрестностях вдоль оси каналов. Параметр size определяет размер окрестности для нормализации, alpha - масштабирующий коэффициент, beta - показатель степени, а k - константа, добавляемая для избежания деления на ноль.

Синтаксис

torch.nn.LocalResponseNorm(size, alpha=1e-4, beta=0.75, k=1.0)

Параметры

Метод принимает следующие параметры:

  • size (int) - размер локальной окрестности для нормализации (обязательный параметр).
  • alpha (float) - масштабирующий коэффициент (по умолчанию 1e-4).
  • beta (float) - показатель степени (по умолчанию 0.75).
  • k (float) - константа (по умолчанию 1.0).

Пример ⁅n="sect"⁆

Давайте создадим слой нормализации с размером окрестности 5 и применим его к случайному тензору:

import torch import torch.nn as nn torch.manual_seed(0) lrn = nn.LocalResponseNorm(size=5) t = torch.randn(1, 10, 5, 5) res = lrn(t) print(res.shape)

Результат выполнения кода:

torch.Size([1, 10, 5, 5])

Пример ⁅n="sect"⁆

Рассмотрим пример с изменёнными параметрами alpha и beta:

import torch import torch.nn as nn torch.manual_seed(1) lrn = nn.LocalResponseNorm(size=3, alpha=0.001, beta=0.5, k=2.0) t = torch.randn(1, 6, 4, 4) res = lrn(t) print(res[0, 0, 0, :4])

Результат выполнения кода:

tensor([-0.2505, 0.0100, 0.1135, 0.1305])

Пример ⁅n="sect"⁆

Использование LocalResponseNorm в составе последовательной модели Sequential:

import torch import torch.nn as nn torch.manual_seed(2) model = nn.Sequential( nn.Conv2d(3, 16, kernel_size=3, padding=1), nn.LocalResponseNorm(size=3), nn.ReLU(), nn.MaxPool2d(2) ) t = torch.randn(1, 3, 32, 32) res = model(t) print(res.shape)

Результат выполнения кода:

torch.Size([1, 16, 16, 16])

Смотрите также

  • класс BatchNorm2d,
    который применяет пакетную нормализацию для двумерных данных
  • класс LayerNorm,
    который выполняет нормализацию по признаковому измерению
  • класс GroupNorm,
    который группирует каналы для нормализации
  • класс InstanceNorm2d,
    который выполняет нормализацию для каждого объекта независимо
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить