Haskell Repa означает BoundFixed?
В пакете Repa есть Boundary
тип данных:
data Boundary a
= BoundFixed !a
| BoundConst !a
| BoundClamp
deriving (Show)
Я понимаю, что подразумевается под BoundConst
(ячейки вне массива обрабатываются как одно значение), и я понимаю, что подразумевается под BoundClamp
(ячейки вне массива имеют те же значения, что и ближайшая ячейка массива).
Что подразумевается под BoundFixed
? Описание: Использовать фиксированное значение для пограничных регионов. Что такое "пограничный регион"? Это все краевые клетки?
1 ответ
Чтение исходного кода для mapStencil2
а также partitionForStencil
похоже, что область границы - это любая ячейка, значение которой будет вычислено с использованием ячеек вне входного массива. BoundConst
использует постоянное значение вне массива в качестве входных данных для свертки при выборке ячеек вне массива. BoundFixed
использует постоянное значение в качестве результата в любое время, когда свертка будет зависеть от значения вне массива.
Вы можете легко проверить это с помощью свертки 3х3 на маленьком изображении. BoundConst
а также BoundClamp
не должно менять изображение вообще. BoundFixed a
нарисовал бы одну клетку a
границы на изображении. BoundFixed
при свертке 2х2 следует нарисовать границу только на двух сторонах изображения. Я не могу рекомендовать использовать BoundFixed
для чего-либо, кроме рисования границ, поскольку одна и та же свертка будет давать разные результаты только из-за размера трафарета.