message: Use x*x instead of x^2 to calculate square in huber loss implementation. The reason is d(x^y)/dy = x^y * log(x) and when x is zero, it becomes NaN. Even if y is constant, the check op would still report failure.
diff: @@ -422,7 +422,7 @@ def huber_loss(labels, predictions, weights=1.0, delta=1.0, scope=None,
  # This is necessary to avoid doubling the gradient, since there is already a
  # nonzero contribution to the gradient from the quadratic term.
  linear = (abs_error - quadratic)
  - losses = 0.5 * quadratic**2 + delta * linear
  + losses = 0.5 * quadratic * quadratic + delta * linear
  return compute_weighted_loss(
  losses, weights, scope, loss_collection, reduction=reduction)
  