I have 2 classes (1 representing positive class and 0 representing negative class). I calculate weights for my BCE loss  as follows.
Weights for Zero = 1 / (number of zeros in the entire dataset)
Weights for ones = 1 / (number of ones in the entire dataset)
but the problem is that the weights of zeros and ones becomes very small like 1e-6 and 1e-4 respectively.
I further change it to
Weights for Zero = 1 - (number of zeros in the entire dataset / total number of pixels in the dataset)
Weights for ones = 1 - (number of ones in the entire dataset / total number of pixels in the dataset)
By this way i can get the weights in range [0-1] with zeros getting close to zero and ones getting close to 1.
I would like to know if this is the correct way to do or is there any suggested way? I saw many reference discussions but they focus on classification and not segmenting pixels.