TensorFlow填充张量函数:tf.pad
2018-11-08 11:49 更新
tf.pad 函数
pad ( tensor , paddings , mode = 'CONSTANT' , name = None , constant_values = 0 )
定义在:tensorflow/python/ops/array_ops.py.
参见指南:张量变换>分割和连接
填充张量.
此操作根据您指定的 paddings 来填充一个 tensor.paddings 是一个具有形状 [n, 2] 的整数张量,其中 n 是 tensor 的秩.对于每个输入维度 D,paddings [D, 0] 表示在该维度的 tensor 内容之前要添加多少个值,而 paddings[D, 1] 表示在该维度中的 tensor 内容之后要添加多少值.如果 mode 是 “REFLECT”,那么这两个paddings[D, 0] 和 paddings[D, 1] 不得大于 tensor.dim_size(D) - 1.如果 mode 是 “SYMMETRIC”,那么这两个 paddings[D, 0] 和 paddings[D, 1] 不得大于tensor.dim_size(D).
输出的每个维度 D 的填充大小是:
paddings[D, 0] + tensor.dim_size(D) + paddings[D, 1]
例如:
# 't' is [[1, 2, 3], [4, 5, 6]].
# 'paddings' is [[1, 1,], [2, 2]].
# 'constant_values' is 0.
# rank of 't' is 2.
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]]
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]]
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 具有相同类型.
返回:
该函数返回一个张量,与 tensor 具有相同的类型.
可能引发的异常:
- ValueError:模式不是 "CONSTANT"、"REFLECT" 或 "SYMMETRIC" 中的一种时.