You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

mindspore.nn.Pad.rst 2.4 kB

4 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142
  1. mindspore.nn.Pad
  2. =================
  3. .. py:class:: mindspore.nn.Pad(paddings, mode='CONSTANT')
  4. 根据 `paddings` 和 `mode` 对输入进行填充。
  5. **参数:**
  6. - **paddings** (tuple) - 填充大小,其shape为(N, 2),N是输入数据的维度,填充的元素为int类型。对于 `x` 的第 `D` 个维度,paddings[D, 0]表示要在输入Tensor的第 `D` 个维度之前扩展的大小,paddings[D, 1]表示在输入Tensor的第 `D` 个维度后面要扩展的大小。每个维度填充后的大小为: :math:`paddings[D, 0] + input\_x.dim\_size(D) + paddings[D, 1]`
  7. .. code-block::
  8. # 假设参数和输入如下:
  9. mode = "CONSTANT".
  10. paddings = [[1,1], [2,2]].
  11. x = [[1,2,3], [4,5,6], [7,8,9]].
  12. # `x` 的第一个维度为3, `x` 的第二个维度为3。
  13. # 根据以上公式可得:
  14. # 输出的第一个维度是paddings[0][0] + 3 + paddings[0][1] = 1 + 3 + 1 = 5。
  15. # 输出的第二个维度是paddings[1][0] + 3 + paddings[1][1] = 2 + 3 + 2 = 7。
  16. # 所以最终的输出shape为(5, 7)
  17. - **mode** (str) - 指定填充模式。取值为"CONSTANT","REFLECT","SYMMETRIC"。默认值:"CONSTANT"。
  18. **输入:**
  19. - **x** (Tensor) - 输入Tensor。
  20. **输出:**
  21. Tensor,填充后的Tensor。
  22. - 如果 `mode` 为"CONSTANT", `x` 使用0进行填充。例如, `x` 为[[1,2,3],[4,5,6],[7,8,9]], `paddings` 为[[1,1],[2,2]],则输出为[[0,0,0,0,0,0,0],[0,0,1,2,3,0,0],[0,0,4,5,6,0,0],[0,0,7,8,9,0,0],[0,0,0,0,0,0,0]]。
  23. - 如果 `mode` 为"REFLECT", `x` 使用对称轴进行对称复制的方式进行填充(复制时不包括对称轴)。例如 `x` 为[[1,2,3],[4,5,6],[7,8,9]], `paddings` 为[[1,1],[2,2]],则输出为[[6,5,4,5,6,5,4],[3,2,1,2,3,2,1],[6,5,4,5,6,5,4],[9,8,7,8,9,8,7],[6,5,4,5,6,5,4]]。
  24. - 如果 `mode` 为"SYMMETRIC",此填充方法类似于"REFLECT"。也是根据对称轴填充,包含对称轴。例如 `x` 为[[1,2,3],[4,5,6],[7,8,9]], `paddings` 为[[1,1],[2,2]],则输出为[[2,1,1,2,3,3,2],[2,1,1,2,3,3,2],[5,4,4,5,6,6,5],[8,7,7,8,9,9,8],[8,7,7,8,9,9,8]]。
  25. **异常:**
  26. - **TypeError** - `paddings` 不是tuple。
  27. - **ValueError** - `paddings` 的长度超过4或其shape不是(N, 2)。
  28. - **ValueError** - `mode` 不是'CONSTANT','REFLECT'或'SYMMETRIC'。