numpy.pad的快速理解

在学习cnn的时候,看了网上好多关于np.pad这个函数的理解,说实话,好多不太对,经过自己的尝试和理解,想做下总结,方便其他人学习。
举个例子,比较浅显易懂:
import numpy as np
a = [[1, 2, 3], [1, 3, 4], [1, 2, 3]]
print(np.pad(a, ((1, 2), (3, 4)), 'constant', constant_values=0))

其中,((2, 2), (2, 2))是矩阵上面增加一行,下面增加一行,左边增加一列,右边增加一列,采用的是‘constant’的方式,增加的常数值是0。
再举个三维的例子。

import numpy as np
arr3D = np.array([[[1, 1, 2, 2, 3, 4],
                   [1, 1, 2, 2, 3, 4],
                   [1, 1, 2, 2, 3, 4]],

                  [[0, 1, 2, 3, 4, 5],
                   [0, 1, 2, 3, 4, 5],
                   [0, 1, 2, 3, 4, 5]],

                  [[1, 1, 2, 2, 3, 4],
                   [1, 1, 2, 2, 3, 4],
                   [1, 1, 2, 2, 3, 4]]])

print(np.pad(arr3D, ((0, 0), (2, 2), (3, 2)), 'constant', constant_values=0))

三维的矩阵可以看成是空间上有三张图片从前往后依次叠加,第一个矩阵
[[1, 1, 2, 2, 3, 4],
[1, 1, 2, 2, 3, 4],
[1, 1, 2, 2, 3, 4]]看成是第一张图片,同理,剩下的两个矩阵分别是第二张第三张图片。
再看pad里面的参数((0, 0), (2, 2), (3, 2)),与二维一样,代表的是增加的行列数,分别是前面增加了0张图片,后面增加了0张图片;所有图片上面增加了2行,下面增加了2行;左边增加了3列,右边增加了2列。这些数值可以按照自己想要填补的数值进行修改即可。
个人觉得这个函数比较难理解的就是参数这一块,搞清楚规则就没问题了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值