什么时候应该使用 Keras 中的哪种数据格式约定(channels_last 或 channels_first)?

Which data format convention in Keras (channels_last or channels_first) should be used when?

我是深度学习的新手,不知道什么时候应该使用哪种数据格式约定。根据https://keras.io/backend/,有两种数据格式约定。

channels_last 对于二维数据:(行,列,通道
channels_first: 对于二维数据:(channels, rows, cols)

为什么Keras中有channels_first选项?我应该什么时候使用它?在 OpenCV 中使用 BGR 是否有任何历史原因?

" BGR was a choice made for historical reasons and now we have to live with it. In other words, BGR is the horse’s ass in OpenCV."
https://www.learnopencv.com/why-does-opencv-use-bgr-color-format/

我认为存在两种数据格式的原因是 Keras 也支持 Theano 作为另一个后端。在 Theano 中,第一个轴表示通道。

张量流 data_format 接受 2 个值- channels_last(默认值)或 channels_first.

它表示输入中维度的顺序。

channels_last 对应于形状为 (batch_size, height, width, channels)

的输入

channels_first 对应于形状为 (batch_size, channels, height, width).

的输入

代码:tf.keras.layers.ZeroPadding2D(padding=(3, 3), input_shape=(64, 64, 3), data_format='channels_last') 无批量大小

Look at Tensorflow document