不同深度学习框架下的默认数据通道顺序及转换

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

猜你喜欢

转载自blog.csdn.net/kupe87826/article/details/105119162
今日推荐