Operator Library: Base
使用 CastKernel 算子,您可以重新组织传入数据的 Parallelism 和内核大小。 如需重新解释,请更改输出链接处的内核大小。 例如,输入链接配置为两个内核行、两个内核列以及 4 的 Parallelism。 CastKernel 算子允许您将这些解释为 Parallelism 为 1 时的四个内核行和四个内核列,或者解释为 Parallelism 为 8 时的一个内核行和两个内核列等。 CastKernel 算子的约束条件是,输入链接和输出链接的内核行、内核列与 Parallelism 的乘积必须相同。
有关使用内核的实际指导,请参见 Working with Kernels 教程主题。 有关 Parallelism 的实际指导,请参见 Parallelism 教程主题。
以下示例说明了算子执行的内核配置与 Parallelism 转换。 插图下方的伪代码也描述了转换模式。
示例 1:在保持 Parallelism 为 2 的同时,将内核大小(列 x 行)从 3x1 转换为 1x3:

示例 2:将 Parallelism 为 2 且内核大小(列 x 行)为 2x3 的配置转换为 Parallelism 为 3 且内核大小为 2x2:

示例 3:将 Parallelism 为 1 且内核大小(列 x 行)为 3x2 的配置转换为 Parallelism 为 6 且内核大小为 1x1:

该算子会更改图像的宽度。
映射遵循以下伪代码:
pi = 0
ri = 0
ci = 0
for p in 0 to P-1
for r in 0 to R-1
for c in 0 to C-1
O[p][r][c] = I[pi][ri][ci]
ci = ci + 1
if ci >= Ci then ci = 0, ri = ri + 1
if ri >= Ri then ri = 0, pi = pi + 1
该伪代码具有以下含义:
| 伪代码 | 含义 |
|---|---|
| p | Output-Parallel-Index |
| pi | Input-Parallel-Index |
| r | Output-Kernel-Row-Index |
| ri | Input-Kernel-Row-Index |
| c | Output-Kernel-Column-Index |
| co | Output-Kernel-Column-Index |
| Pi | Input-Parallelism |
| P | Output-Parallelism |
| Ri | Input-Kernel-Rows |
| R | Input-Kernel-Columns |
| Ci | Input-KernelColumns |
| C | OutputKernelColumns |
表 32. 伪代码说明
CastKernel 算子的功能也可以通过组合以下算子来实现:SplitKernel、MergeKernel、SplitParallel 和 MergeParallel:

在此示例中,Parallelism 为 3、包含 4 个 Kernel Columns 和 2 个 Kernel Rows 的输入配置被重新组织为 Parallelism 为 4、包含 2 个 Kernel Columns 和 3 个 Kernel Rows。通过相应地配置输出链路,使用 CastKernel 算子也可以达到相同的效果:

The use of operator CastKernel is shown in the following examples:
-
示例 - 演示如何使用该算子
-
示例 - 演示如何使用该算子




is determined by the input parallelism
、输入 kernel 大小
以及输出 kernel 大小决定
:

表示 kernel rows 且
表示 kernel columns。
以及输入 parallelism 决定
经过:

上一页

