參考: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]