Haskell Repa BoundFixed的含义?
Repa包中有一个Boundary
数据类型:
data Boundary a
= BoundFixed !a
| BoundConst !a
| BoundClamp
deriving (Show)
我明白BoundConst
是什么意思(数组之外的单元格被视为单个值),并且我明白BoundClamp
(数组之外的单元格与最接近的数组单元格的值相同)。
BoundFixed
是什么意思? 描述是使用边界区域的固定值。 什么是“边境地区”? 这些都是边缘细胞吗?
通过读取mapStencil2
和partitionForStencil
的源代码,看起来像边界区域是任何单元格,其值将使用输入数组外的单元格计算。 BoundConst
在阵列外采样单元格时,使用阵列外的常量值作为卷积的输入。 任何时候卷积都取决于数组外的值, BoundFixed
使用一个常数值作为结果。
您可以轻松地在小图像上使用3x3身份卷积来测试此功能。 BoundConst
和BoundClamp
不应该改变图像。 BoundFixed a
会画一个单元a
图像上边界。 BoundFixed
与2x2标识卷积应该只在图像的两边绘制边界。 除了绘制边框之外,我不推荐使用BoundFixed
,因为相同的卷积会由于模板大小而产生不同的结果。