Convolutional neural networks for multi- and hyper-spectral image classification