mathematically undefined in the above loss equation. PyTorch
   chooses to set \log (0) = -\infty, since \lim_{x\to 0} \log (x) =
   -\infty. However, an infinite term in the loss equation is not
   desirable for several reasons.
For one, if either y_n = 0 or (1 - y_n) = 0, then we would be
   multiplying 0 with infinity. Secondly, if we have an infinite loss
   value, then we would also have an infinite term in our gradient,
   since \lim_{x\to 0} \frac{d}{dx} \log (x) = \infty. This would make
   BCELoss's backward method nonlinear with respect to x_n, and using
   it for things like linear regression would not be straight-forward.
Our solution is that BCELoss clamps its log function outputs to be
   greater than or equal to -100. This way, we can always have a
   finite loss value and a linear backward method.
Parameters:
      * weight (Tensor, optional) -- a manual rescaling
        weight given to the loss of each batch element. If given, has