【报错以及nn.Con2d参数讲解】

问题:

RuntimeError: could not create a descriptor for a dilated convolution forward propagation primitive

思考:

是在前向传播中的卷积操作出了问题,而且是dilation设置出了问题。

解决:

首先需要了解卷积的参数设置。通过点击函数进去。

Args:
        in_channels (int): Number of channels in the input image    输入通道数
        out_channels (int): Number of channels produced by the convolution 输出通道数
        kernel_size (int or tuple): Size of the convolving kernel  卷积核大小
        stride (int or tuple, optional): Stride of the convolution. Default: 1  步长
        padding (int or tuple, optional): Zero-padding added to both sides of
            the input. Default: 0   边界填充
        padding_mode (string, optional): ``'zeros'``, ``'reflect'``,
            ``'replicate'`` or ``'circular'``. Default: ``'zeros'`` 填充方式
        dilation (int or tuple, optional): Spacing between kernel elements. Default: 1 扩大率
        groups (int, optional): Number of blocked connections from input
            channels to output channels. Default: 1    将一组输入输出为多少组输出,一般为一
        bias (bool, optional): If ``True``, adds a learnable bias to the
            output. Default: ``True``  是否使用偏执
    """.format(**reproducibility_notes, **convolution_notes) + r"""

上面参数应该都很熟悉,然后我说一下dilation。
这里的dilation相当于是扩大率,具体了解的话可以搜索空洞卷积。
一般为一,就是和正常卷积一样,所以设置为0是不行的。当为其他数字时,是在需要卷积的对应区域每两个数字之间填充dilation-1个零。
比如说一个3*3卷积核,dilation rate=2,那么如图所示

【报错以及nn.Con2d参数讲解】_第1张图片
当将dilation改为1之后即可运行。

你可能感兴趣的:(机器学习,python,pytorch)