Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.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
Machine learning CNN:为什么图像矩阵转换为(通道、宽度、高度)?_Machine Learning_Neural Network_Conv Neural Network_Convolution_Mxnet - Fatal编程技术网

Machine learning 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和使

我正在浏览一些CNN的文章。我看到它们将输入图像转换为
(通道、宽度、高度)

一个代码示例取自


有人能解释为什么我们要进行这种转换吗?

二维卷积有几种图像格式,主要有:

  • 频道优先
    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)