参考:https://blog.csdn.net/duan19920101/article/details/104487079
下面是不同框架下的默认数据通道顺序
Caffe: NCHW
NCNN: CHW
tensorflow: NHWC
OpenCV: NHWC
pytorch: NCHW
mxnet: NCHW
海思bgr: NCHW
瑞芯微rknn: NHWC
scipy.misc: NHWC
现在开始介绍OpenCV读取的图片与mxnet数据之间的转换
1、HWC转CHW
mxnet方法:
nd.transpose(img, axes=(2, 0, 1))
numpy 方法:
img = np.swapaxes(img, 0, 2)
img = np.swapaxes(img, 1, 2)
2、CHW转HWC
mxnet方法:
img = nd.transpose(img, axes=(1, 2, 0))
numpy方法:
img=np.swapaxes(img, 0, 2)
img=np.swapaxes(img, 0, 1)
3、NCHW和CHW互转
np.squeeze(降维)和np.expand_dims(升维)
mxnet.nd.squeeze(降维)和mxnet.nd.expand_dims(升维)
data = [[[0], [1], [2]]]
squeeze(data) = [0, 1, 2]
squeeze(data, axis=0) = [[0], [1], [2]]
squeeze(data, axis=1) 会报错 因为这个维度上数据是3
squeeze(data, axis=2) = [[0, 1, 2]]
squeeze(data, axis=(0, 2)) = [0, 1, 2]