不同深度學習框架下的默認數據通道順序及轉換

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

 

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