np.pad实现零填充

np.pad 是 NumPy 中用于对数组进行填充的函数,它可以在数组的不同维度上添加指定数量的值。

X:输入的 NumPy 数组。通常是一个 4 维数组,可能表示图像数据,形状为 (batch_size, height, width, channels),例如 (样本数量, 高度, 宽度, 通道数)。

((0, 0), (pad, pad), (pad, pad), (0, 0)): 这是填充方式的定义,np.pad 需要一个形状与数组维度相同的 tuple(元组)来指示每个维度的填充值。这个元组中的每个元素是一个二元 tuple,表示对应维度的左边和右边需要填充的数量。

(0, 0):对第一个维度(样本数量)不做填充。
(pad, pad):对第二个维度(高度)进行 pad 大小的填充,前后都填充 pad 个单位。
(pad, pad):对第三个维度(宽度)进行 pad 大小的填充,前后都填充 pad 个单位。
(0, 0):对第四个维度(通道数)不做填充。

'constant':指定填充的模式,这里 ‘constant’ 表示用常数来填充。

constant_values=0:指定填充常数的值。这里用 0 进行填充,因此 pad 大小的区域将填充为 0。


def zero_pad(X, pad):
    """
    给样本集X的所有样本进行零填补
    :param X: (m,n_H,n_W,n_C),样本数量、图片的高、宽、深度
    :param pad: padding个数
    :return: X_pad: 填补后的结果(m, n-H+2*pad,n_W+2*pad,n_C)
    """
    X_pad = np.pad(X, ((0, 0), (pad, pad), (pad, pad), (0, 0)), 'constant', constant_values=0)
    return X_pad

def test1():
    np.random.seed(1)
    x = np.random.randn(4, 3, 3, 2)
    x_pad = zero_pad(x, 2)
    print("x.shape:", x.shape)
    print("x_pad.shape:", x_pad.shape)
    print("x[1,1]=", x[1, 1])
    print("x_pad[1,1]=", x_pad[1, 1])
    fig, axarr = plt.subplots(1, 2)
    axarr[0].set_title('x')
    print(x)
    print("-=-----")
    print(x[0, :, :, 0])
    axarr[0].imshow(x[0, :, :, 0])
    axarr[1].set_title('x_pad')
    axarr[1].imshow(x_pad[0, :, :, 0])
    plt.show()

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值