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

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章