# CNN model for more than 3 channels input

Are there any special cnn architectures for data, which has more than 3 channels? For example, satellite imagery, where we can consider different wavelenghts. It's clear, that we can readily use unet or something like that, but when there are 20 channels, for instance, it seems, that approach should differ. Not a neural network model, which can get feature-vector consisted of pixels from each channel, isn't sufficient perhaps, because spatial characteristics are important too.

A CNN does not care about the starting number of channels. It can be one, three, 20, or anything really. Here's a simple example in the python library Keras for how you might start out a CNN with 20 channels, assuming your images are 100x100. Obviously these numbers can be changed to whatever your problem needs.

from keras.layers import Input, Conv2D

# Assumes images are 100x100 with 20 channels
inputs = Input(shape=(100, 100, 20))

# First convolution will take in the 20 channels and output 32 channels
x = Conv2D(32, strides=(2, 2), activation='relu')(inputs)

# Second convolution will take in the 32 channels and output 64 channels
x = Conv2D(64, strides=(2, 2), activation='relu')(x)

...