在卷积神经网络中一个重要的操作就是padding,翻译为填充。就是把一张图片的作为填上一些像素点,以免使得在卷积过程中,图像边缘的点的信息卷积次数过少,而使信息丢失。
在numpy函数中已经把padding封装好了。
此处重点讨论这函数的具体用法。
import numpy as np import h5py import matplotlib.pyplot as plt a=np.array([1,2,3,4]) b=np.pad(a,((1,2)),'constant') print(b) [0 1 2 3 4 0 0] import numpy as np import h5py import matplotlib.pyplot as plt a=np.array([1,2,3,4]) b=np.pad(a,((1,2)),'constant',constant_values=(0,1)) print(b) [0 1 2 3 4 1 1]第一个参数是填充的矩阵数组,第二个参数是填充的个数,此例中第一个参数‘1’表示在前面填充1个,第二个参数‘2’表示在后面填充2个,constant表示连续填充填充,默认为0.
1)语法结构
pad(array, pad_width, mode, **kwargs)
返回值:数组
2)参数解释
array——表示需要填充的数组;
pad_width——表示每个轴(axis)边缘需要填充的数值数目。? 参数输入方式为:((before_1, after_1), … (before_N, after_N)),其中(before_1, after_1)表示第1轴两边缘分别填充before_1个和after_1个数值。取值为:{sequence, array_like, int}
mode——表示填充的方式(取值:str字符串或用户提供的函数),总共有11种填充模式;
3) 填充方式
‘constant’——表示连续填充相同的值,每个轴可以分别指定填充值,constant_values=(x, y)时前面用x填充,后面用y填充,缺省值填充0
‘edge’——表示用边缘值填充
‘linear_ramp’——表示用边缘递减的方式填充
‘maximum’——表示最大值填充
‘mean’——表示均值填充
‘median’——表示中位数填充
‘minimum’——表示最小值填充
‘reflect’——表示对称填充
‘symmetric’——表示对称填充
‘wrap’——表示用原数组后面的值填充前面,前面的值填充后面
