tf.pad

2022-09-04 20:52:51 浏览数 (1)

代码语言:javascript复制
tf.pad(
    tensor,
    paddings,
    mode='CONSTANT',
    name=None,
    constant_values=0
)

pad一个张量。 这个操作根据指定的paddings填充一个tensor。padding是一个形状为[n, 2]的整数张量,其中n是张量的秩。对于输入的每个维度D,paddings[D, 0]表示在该维度tensor的内容之前要添加多少个值,paddings[D, 1]表示在该维度张量的内容之后要添加多少个值。如果mode是“REFLECT”,那么paddings[D, 0]和paddins[D, 1]必须不大于tensor.dim_size(D) - 1。如果mode是“SYMMETRIC”,那么paddings[D, 0]和paddings[D, 1]必须不大于tensor.dim_size(D)。

输出各维度D的padding尺寸为:

例如:

代码语言:javascript复制
t = tf.constant([[1, 2, 3], [4, 5, 6]])
paddings = tf.constant([[1, 1,], [2, 2]])
# 'constant_values' is 0.
# rank of 't' is 2.
tf.pad(t, paddings, "CONSTANT")  # [[0, 0, 0, 0, 0, 0, 0],
                                 #  [0, 0, 1, 2, 3, 0, 0],
                                 #  [0, 0, 4, 5, 6, 0, 0],
                                 #  [0, 0, 0, 0, 0, 0, 0]]

tf.pad(t, paddings, "REFLECT")  # [[6, 5, 4, 5, 6, 5, 4],
                                #  [3, 2, 1, 2, 3, 2, 1],
                                #  [6, 5, 4, 5, 6, 5, 4],
                                #  [3, 2, 1, 2, 3, 2, 1]]

tf.pad(t, paddings, "SYMMETRIC")  # [[2, 1, 1, 2, 3, 3, 2],
                                  #  [2, 1, 1, 2, 3, 3, 2],
                                  #  [5, 4, 4, 5, 6, 6, 5],
                                  #  [5, 4, 4, 5, 6, 6, 5]]

参数:

  • tensor: 一个张量。
  • paddings: 一个int32类型的张量
  • mode "CONSTANT"、 "REFLECT" 或 "SYMMETRIC" (不区分大小写)之一。
  • name:操作的名称(可选)。
  • constant_values: 在“CONSTANT”模式下,要使用标量填充值。必须和tensor的类型相同。

返回值:

  • 一个张量。与参数张量的类型相同。

可能产生的异常:

  • ValueError: When mode is not one of "CONSTANT", "REFLECT", or "SYMMETRIC".

原链接: https://tensorflow.google.cn/versions/r1.9/api_docs/python/tf/pad?hl=en

0 人点赞