Search code examples
tensorflowneural-networkdeep-learningconv-neural-networkopenvino

Channels first vs Channels last - what do these mean?


https://software.intel.com/en-us/forums/computer-vision/topic/785538

"The problem has been resolved. It's because the model I use uses channels_first as default for GPU training, while OPENVINO requires channels_last for TF models."

What do these mean?

How can I change them?

I cannot find any further references to this on the net.


Solution

  • Channels first means that in a specific tensor (consider a photo), you would have (Number_Of_Channels, Height , Width).

    Channels last means channels are on the last position in a tensor(n-dimensional array).

    Examples:

        (3,360,720) --- Channels first
    
        (360,720,3) --- Channels last
    

    where 3 comes from RGB (coloured image).

    TensorFlow has by default channels last setting in the configuration.

    The issue comes from the fact that some obsolete now frameworks(such as Theano) had a channels-first approach; porting was a problem particularly for newbies.

    The solution to your problem would be to re-train your model in "Channels_Last" format.