LCN¶
Описание¶
Данный модуль реализует локальный контрастно нормализационный слой (local contrast normalization layer).
Локальная нормализация контраста - это метод, используемый для нормализации контраста изображения нелинейным способом. Вместо выполнения глобальной нормализации на основе диапазона значений всего изображения LCN работает с локальными участками изображения на основе каждого пикселя.
Реализуется путем удаления среднего значения окрестности из конкретного пикселя и деления на изменение значений пикселей.
Данная техника нормализации является устаревшей.
Инициализация¶
def __init__(self, N=5, alpha=1e-4, beta=0.75, K=2.0, includePad=True, name=None):
Параметры
Параметр | Возможные типы | Описание | По умолчанию |
---|---|---|---|
N | int | Количество каналов для суммирования | 5 |
alpha | float | Сдвиг | 1e-4 |
beta | float | Параметр масштаба | 0.75 |
K | float | Радиус глубины | 2.0 |
includePad | bool | Делать ли заполнение значений по периметру тензора | True |
name | str | Имя слоя | None |
Пояснения
N
- количество каналов для суммирования (для поперечного канала LRN) или длина стороны квадратной области для суммирования (для внутреннего канала LRN). Значение параметра должно быть нечетным;
alpha
- сдвиг, небольшое положительное число, близкое к нулю, чтобы избежать деления на ноль;
K
- радиус глубины. Половина ширины окна 1-D нормализации.
Примеры¶
Необходимые импорты.
import numpy as np
from PuzzleLib.Backend import gpuarray
from PuzzleLib.Modules import LCN
batchsize, maps, h, w = 1, 1, 5, 5
data = gpuarray.to_gpu(np.random.randn(batchsize, maps, h, w).astype(np.float32))
lcn = LCN(N=5)
lcn(data)