3D UNet Input channel for voxel categorisation


I have a 128x128x128 input 3D image where each voxel belongs to one category (basically a segmentation) out of ~100 total categories.

I’m aware that CNNs work best with one channel per category, and the channel has 1s where the voxel is in that category and 0 otherwise.

However, that is far too many channels. Is having one channel with values between 0 and 1 for each category (say 0.01 for category 1, 0.02 for category 2, etc) a complete non-starter?

Are there any standard ways of dealing with this issue?

Thank you!