megengine.functional.nn.pad#

pad(src, pad_width, mode='constant', constant_value=0.0)[源代码]#

填充输入张量。

参数:
  • pad_width (Tuple[Tuple[int, int], ...]) – 一个元组。元组中的每个元素都是两个元素的元组,这两个元素表示当前维度两侧的填充大小, (front_offset, back_offset)

  • mode (str) – 下列字符串值中的一个。默认值: 'constant' * 'constant' :使用一个常量进行填充。 * 'reflect' :对每一个轴,使用以张量的第一个和最后一个值为中心的镜像反射进行填充。 * 'replicate' :使用张量的边界值进行填充。

  • constant_val – 使用常量填充。默认值: 0

实际案例

>>> import numpy as np
>>> inp = Tensor([[1., 2., 3.],[4., 5., 6.]])
>>> inp
Tensor([[1. 2. 3.]
 [4. 5. 6.]], device=xpux:0)
>>> F.nn.pad(inp, pad_width=((1, 1),), mode="constant")
Tensor([[0. 0. 0.]
 [1. 2. 3.]
 [4. 5. 6.]
 [0. 0. 0.]], device=xpux:0)
>>> F.nn.pad(inp, pad_width=((1, 1),), mode="constant", constant_value=9)
Tensor([[9. 9. 9.]
 [1. 2. 3.]
 [4. 5. 6.]
 [9. 9. 9.]], device=xpux:0)
>>> F.nn.pad(inp, pad_width=((1, 1), (1, 2)), mode="reflect")
Tensor([[5. 4. 5. 6. 5. 4.]
 [2. 1. 2. 3. 2. 1.]
 [5. 4. 5. 6. 5. 4.]
 [2. 1. 2. 3. 2. 1.]], device=xpux:0)
>>> F.nn.pad(inp, pad_width=((1, 1), (1, 2)), mode="replicate")
Tensor([[1. 1. 2. 3. 3. 3.]
 [1. 1. 2. 3. 3. 3.]
 [4. 4. 5. 6. 6. 6.]
 [4. 4. 5. 6. 6. 6.]], device=xpux:0)
返回类型:

Tensor