背景
nn.conv2d是卷积神经网络中最重要的成员,由Lecun等AI大神在1998年的论文中首次提出,其基本原理是对一个传入格式为(N,Cin,Hin,Win)的四维张量根据设定长宽的卷积核在Hin和Win维进行2d卷积运算,求解出卷积结果后,移动设定的步长再次执行卷积,依次计算得到所有位置的结果。具体实现可参考论文:http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf
nn.Conv2d参数介绍
in_channels(int)—输入通道Cin的数量。
out_channels(int)—输出通道Cout的数量。
kernel_size(Union[int,tuple[int]])—数据类型为int或tuple,需为整数。指定二维卷积窗口的高度和宽度。单个int表示卷积核的高度和宽度的值如果是一个包含2个整数的元组,意味着第一个值代表卷积核的高度,另一个表示卷积核的宽度。
stride(Union[int,tuple[int]])—卷积核移动的距离,单个int表示移动的高度和宽度都是int,两个int数组成的元组分别表示移动的高度和宽度。默认值:1。
pad_mode (str) —指定填充模式。可选值为“same”、“valid”、“pad”。默认值:“same”。
– same:采用补全方式。输出的高度和宽度将与输入的高度和宽度相同。将计算水平和垂直方向的填充总数,并在可能的情况下均匀分布到顶部和底部,左侧和右侧。否则,最后的额外填充将从底部和右侧开始。如果设置了此模式,则填充必须为0。
– valid:采用丢弃方式。输出的可能最大的高度和宽度将返回而无需填充。多余的像素将被丢弃。如果设置了此模式,则填充必须为0。
– pad:输入两侧的隐式填充。填充数量将填充到输入张量边界。填充值应大于或等于0。
padding(int)–输入两侧的隐式填充,当模式为pad时生效。默认值:0
dilation(Union [int,tuple [int]])–数据类型为int或具有2个整数的元组。指定用于膨胀卷积的膨胀率。如果设置为k> 1,则每个采样位置将跳过k-1个像素。其值应大于或等于1,并以输入的高度和宽度为边界。默认值:1。
group(int)–将过滤器分为几组,in_channels和out_channels应该被组数整除。默认值:1。
has_bias(bool)–指定图层是否使用偏差矢量。默认值:False。
weight_init(Union [Tensor,str,Initializer,numbers.Numb