I am training deep learning models (i.e., CNNs, convolutional deep neural nets) on Fourier transformed images, i.e. the neural net receives as input a 2-channel (real and imaginary) tensor of shape e.g. batchsize x 2channels x 64 x 64 which is a DFT of an image.
The network struggles to learn even more to generalize and I wonder what would be the best/correct way to normalized the data? I tried to subtract to each example in the batch the mean (of the batch) and divide by the std of the batch.

Please, always give all the details, since it is never clear from what the mean & std are taken : the worse case is when people say: "substract mean and divide by std": mean and std of WHAT exactly? subtract it from each example individually? please avoid any ambiguity! (e.g. from the whole dataset, or the batch or an individual example?) and to what it is applied (again to each example I guess? but there are so many ways to do it that I think it deserves to be very explicitly stated).

  • $\begingroup$ Are you processing a 64x64 image? $\endgroup$
    – Royi
    Feb 28 at 8:37
  • $\begingroup$ Training deep neural networks is not an easy task, you will need loads a lot of images and some patience before you can see any relevant result. I would start with some pipeline that already works for images in the space domain. $\endgroup$
    – Bob
    Feb 28 at 9:30
  • $\begingroup$ I'm aware of that, and for specific reasons (which i m not supposed to mention here, not now at least) I must do in the Fourier space, not image space. So your comments are not relevant in my specific case. $\endgroup$
    – SheppLogan
    Feb 28 at 14:25


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.