nn.conv2d是卷积神经网络中最重要的成员,由Lecun等AI大神在1998年的论文中首次提出,其基本原理是对一个传入格式为(N,Cin,Hin,Win)的四维张量根据设定长宽的卷积核在Hin和Win维进行2d卷积运算,求解出卷积结果后,移动设定的步长再次执行卷积,依次计算得到所有位置的结果。具体实现可参考论文:http://vision.stanford.edu/cs598_spring07/papers/Lecun98.pdf
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.Number])–卷积内核的初始化方法。它可以是张量,字符串,初始化器或数字。指定字符串后,可以使用“ TruncatedNormal”,“ Normal”,“ Uniform”,“ HeUniform”和“ XavierUniform”分布以及常量“ One”和“ Zero”分布的值。可以接受别名“ xavier_uniform”,“ he_uniform”,“ ones”和“ zeros”。大写和小写均可。有关更多详细信息,请参考Initializer的值。默认值:“正常”。
bias_init(Union [Tensor,str,Initializer,numbers.Number])–偏置向量的初始化方法。可能的初始化方法和字符串与“ weight_init”相同。有关更多详细信息,请参考Initializer的值。默认值:“零”。
输入: 输入(张量)-形状(N,Cin,Hin,Win)的张量。
输出: 形状的张量(N,Cout,Hout,Wout)。