Machine learning CNN:为什么图像矩阵转换为(通道、宽度、高度)?
我正在浏览一些CNN的文章。我看到它们将输入图像转换为Machine learning CNN:为什么图像矩阵转换为(通道、宽度、高度)?,machine-learning,neural-network,conv-neural-network,convolution,mxnet,Machine Learning,Neural Network,Conv Neural Network,Convolution,Mxnet,我正在浏览一些CNN的文章。我看到它们将输入图像转换为(通道、宽度、高度) 一个代码示例取自 有人能解释为什么我们要进行这种转换吗?二维卷积有几种图像格式,主要有: 频道优先或NCHW格式,即(批次、频道、高度、宽度) 频道最后一个或NHWC格式,即(批次、高度、宽度、频道) 它们基本上是等价的,可以很容易地从一个转换到另一个,尽管有证据表明,当使用特定的数据格式时,某些低级实现的执行效率更高(请参阅) 计算引擎通常接受两种格式,但有不同的默认值,例如 默认情况下,Tensorflow和使
(通道、宽度、高度)
一个代码示例取自
有人能解释为什么我们要进行这种转换吗?二维卷积有几种图像格式,主要有:
- 频道优先或
格式,即NCHW
(批次、频道、高度、宽度)
- 频道最后一个或
格式,即NHWC
(批次、高度、宽度、频道)
- 默认情况下,Tensorflow和使用
NHWC
- Theano only
格式NCHW
- Keras也与这两种方法一起工作,并且有一个解决方案。默认情况下,最新版本还使用
NHWC
- MXNet,但默认值为
: 默认数据布局为NCHW
,即NCHW
。我们可以选择其他布局,如(批次大小、通道、高度、宽度)
NHWC
layout
参数
def transform(data, label):
# 2,0,1 means channels,width, height
return nd.transpose(data.astype(np.float32), (2,0,1))/255, label.astype(np.float32)