函数原型
tf.pad(
tensor, paddings, mode='CONSTANT', constant_values=0, name=None
)
函数说明
pad函数用于对张量进行填充,参数paddings表示填充的张量形式,参数constant_values表示填充值。mode表示填充的模式,有"CONSTANT", “REFLECT”, or "SYMMETRIC"三个可选值。
函数使用
1、二维张量的例子
>>> a = tf.ones((2, 3))
>>> a
<tf.Tensor: shape=(2, 3), dtype=float32, numpy=
array([[1., 1., 1.],
[1., 1., 1.]], dtype=float32)>
# [[2, 1], [1, 1]]表示在第一个维度上面填充2行,下面填充1行,在第二个维度左边填充1行,右边填充1行
>>> b = tf.pad(a, [[2, 1], [1, 1]])
>>> b
<tf.Tensor: shape=(5, 5), dtype=float32, numpy=
array([[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 1., 1., 1., 0.],
[0., 1., 1., 1., 0.],
[0., 0., 0., 0., 0.]], dtype=float32)>
>>> c = tf.pad(a, [[0, 1], [1, 1]], constant_values=3)
>>> c
<tf.Tensor: shape=(3, 5), dtype=float32, numpy=
array([[3., 1., 1., 1., 3.],
[3., 1., 1., 1., 3.],
[3., 3., 3., 3., 3.]], dtype=float32)>
2、三维张量的例子
>>> a = tf.ones((3, 2, 3))
>>> a
<tf.Tensor: shape=(3, 2, 3), dtype=float32, numpy=
array([[[1., 1., 1.],
[1., 1., 1.]],
[[1., 1., 1.],
[1., 1., 1.]],
[[1., 1., 1.],
[1., 1., 1.]]], dtype=float32)>
# [[1, 2], [1, 1], [1, 1]]表示上面填充1行,下面填充2行,左边填充1行,右边填充1行
# 张量[1, 1, 1]里面左边填充1行,右边填充1行
>>> b = tf.pad(a, [[1, 2], [1, 1], [1, 1]])
>>> b
<tf.Tensor: shape=(6, 4, 5), dtype=float32, numpy=
array([[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 1., 1., 1., 0.],
[0., 1., 1., 1., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 1., 1., 1., 0.],
[0., 1., 1., 1., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 1., 1., 1., 0.],
[0., 1., 1., 1., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]],
[[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.],
[0., 0., 0., 0., 0.]]], dtype=float32)>