Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么MXnet中的卷积函数有一个核参数_Python_Mxnet - Fatal编程技术网

Python 为什么MXnet中的卷积函数有一个核参数

Python 为什么MXnet中的卷积函数有一个核参数,python,mxnet,Python,Mxnet,我是mxnet的新手,在官方文档中,卷积层的生成可能是 conv = nd.Convolution(data=data, weight=W, bias=b, kernel=(3,3), num_filter=10) 但要求权重参数需要采用4-D张量 W = [weight_num, stride, kernel_height, kernel_width] 那么为什么我们仍然需要在卷积函数中设置内核参数呢?内核参数设置内核大小,它可以是: (宽度,)-用于1D卷积 (高度、宽度)-用于二维卷

我是mxnet的新手,在官方文档中,卷积层的生成可能是

conv = nd.Convolution(data=data, weight=W, bias=b, kernel=(3,3), num_filter=10)
但要求
权重
参数需要采用4-D张量

W = [weight_num, stride, kernel_height, kernel_width]

那么为什么我们仍然需要在
卷积
函数中设置
内核
参数呢?

内核
参数设置内核大小,它可以是:

  • (宽度,)-用于1D卷积
  • (高度、宽度)-用于二维卷积
  • (深度、高度、宽度)-用于三维卷积
它只定义形状

权重
偏差
参数包含要训练的实际参数。实际值将在这里

虽然您可能可以通过提供的
权重
计算出
内核
(形状),但更具防御性的做法是要求明确提供
内核
形状,而不是根据传递给
权重
的参数进行计算

以下是2D卷积的一个示例:

# shape is batch_size x channels x height x width
x = mx.nd.random.uniform(shape=(100, 1, 9, 9))
# kernel is just 3 x 3, 
# weight is num_filter x channels x kernel_height x kernel_width
# bias is num_filter
mx.nd.Convolution(data=x, 
                  kernel=(3, 3), 
                  num_filter=5, 
                  weight=mx.nd.random.uniform(shape=(5, 1, 3, 3)), 
                  bias=mx.nd.random.uniform(shape=(5,)))
解释1D、2D或3D卷积情况下各种参数形状的文档非常好: