|
@@ -1894,9 +1894,46 @@ def pad( |
|
|
mode: str = "constant", |
|
|
mode: str = "constant", |
|
|
constant_value: float = 0.0, |
|
|
constant_value: float = 0.0, |
|
|
) -> Tensor: |
|
|
) -> Tensor: |
|
|
""" |
|
|
|
|
|
Pad is python warpper for padding opr in megbrain, can padding in random one of the max 7 dimensions. |
|
|
|
|
|
Supported constant, edge(replicate) and reflect mode, constatnt is the default mode. |
|
|
|
|
|
|
|
|
r"""Pads the input tensor. |
|
|
|
|
|
|
|
|
|
|
|
Args: |
|
|
|
|
|
pad_width: A tuple. Each element in the tuple is the tuple of 2-elements, |
|
|
|
|
|
the 2 elements represent the padding size on both sides of the current dimension, ``(front_offset, back_offset)`` |
|
|
|
|
|
mode: One of the following string values. Default: ``'constant'`` |
|
|
|
|
|
|
|
|
|
|
|
* ``'constant'``: Pads with a constant value. |
|
|
|
|
|
* ``'reflect'``: Pads with the edge values of tensor. |
|
|
|
|
|
* ``'replicate'``: Pads with the reflection of the tensor mirrored on the first and last values of the tensor along each axis. |
|
|
|
|
|
constant_val: Fill value for ``'constant'`` padding. Default: 0 |
|
|
|
|
|
|
|
|
|
|
|
Examples: |
|
|
|
|
|
|
|
|
|
|
|
>>> 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) |
|
|
|
|
|
|
|
|
""" |
|
|
""" |
|
|
p_offsets = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
|
|
p_offsets = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] |
|
|
|
|
|
|
|
|