Complex-Valued input to CNN I want to train a CNN. However, my input is images of size 100*100 with complex numbers. I have runned the model, but it failed and the loss didn't decrease. Then I found out that my because my inputs are complex, they are not able to train very good. Actually, I think the activation functions and the convolutions and the optimizer, backpropagation, cost should be changed. I wonder how I can Implement my CNN with Complex-Valued input. I would be thankful if anyone could help me.
There has been some research in building very specialized deep learning models to use complex numbers using complex algebra, but these tools are not yet user-friendly. So unless you want to go down the rabbit hole and try to understand their implementations and then try to write your own implementation, i would avoid this. 

In the past, I worked with MRI data which is a 3D complex-valued matrix. I inspired myself from the work done in color images, where 3 channels are used to represent red (R), green (G) and blue (B). I this separated the real and imaginary part, and treated them as separate channels into the deep learning model all as real numbers.

1D example:

From a complex vector, we get 2 channels where the imaginary part can then be treated as a real number. 

$[1+1j, 2+2j, 3+3j] = [1, 2, 3], [1, 2, 3]$