代码语言: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