Search code examples
niftynet

Sample Weighting Regression Niftynet


Good evening,

I have an interrogation about the regression application in Niftynet. Indeed I try to predict CT continuous UH maps from MRI(s). I therefore use a regression CNN (highres3dnet) which converges but as an output I naturally get values between for example ~(-5;5) whereas they shall be between (-1000+1000). I therefore wanted to know what in my training and or / inference ini files should I modify. I tried percentile normalization (with histogram_ref_file), weighted sampling (indicating the input image as weight), but not sure I am performing it well, and sadly couldn't find information regarding this point on the CMIC's web-page.

Thanks by advance.

Paul


Solution

  • hires3dnet uses batch norm and no bias term at the final layer by default (https://github.com/NifTK/NiftyNet/blob/v0.2.2/niftynet/network/highres3dnet_large.py#L140). You could either a) preprocess the CT to have zero mean and unit variance or b) remove the batch norm and add a bias term to the final layer by fc_layer = ConvolutionalLayer(..., with_bias=True, with_bn=False, ...).