TensorFlow学习笔记[一]—— 填充张量函数 tf.pad 解析

函数的作用:

对张量按照你的需求进行填充

定义在:tensorflow/python/ops/array_ops.py


函数原型:

pad(
    tensor,
    paddings,
    mode='CONSTANT',
    name=None
)


参数说明:

tensor:   A 'Tensor'.     #tensor是要填充的张量;
paddings: A 'Tensor' of type 'int32'.     #paddings也是一个张量,是需要扩张的维度,代表每一维填充多少行和列
(注意!!paddings的rank也就是秩一定要和要填充的tensor的秩一样才行),类型是Int32;
mode:    One of "CONSTANT", "REFLECT", or "SYMMETRIC" (case-insensitive)    #mode可选三个值,分别是"CONSTANT","REFLECT"和"SYMMETRIC",代表三种不同的填充方式
name:    A name for the operation (optional).      #pad操作的重命名,一般不需要管,默认是None


mode参数详细说明:

mode="CONSTANT" 是填充0

mode="REFLECT"是映射填充,上下(1维)填充顺序和paddings是相反的,左右(零维)顺序补齐

mode="SYMMETRIC"是对称填充,上下(1维)填充顺序是和paddings相同的,左右(零维)对称补齐



返回值说明:

A 'Tensor'.     Has the same type as 'tensor'.

即返回值也是一个Tensor,类型和参数'tensor'是一样的。



举例说明:


本例使用的tensor都是rank=2的,注意paddings的rank也要等于2,否则会报错:


Example1:

t=[[2,3,4],[5,6,7]],   paddings=[[1,1],[2,2]],  mode="CONSTANT"

那么sess.run(tf.pad(t,paddings,"CONSTANT"))的输出结果为:

array([[0, 0, 0, 0, 0, 0, 0],

          [0, 0, 2, 3, 4, 0, 0],

          [0, 0, 5, 6, 7, 0, 0],

          [0, 0, 0, 0, 0, 0, 0]], dtype=int32)

mode="CONSTANT"这种填充模式是最简单的,一看就能明白

上,下,左,右分别填充了1行、1行以及2、2列

刚好和paddings=[[1,1],[2,2]]相等,

然后全部用0填充


Example 2:

t=[[2,3,4],[5,6,7]], paddings=[[1,2],[2,3]],mode="CONSTANT"

sess.run(tf.pad(t,paddings,"CONSTANT"))的 输出结果为:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值