Fangjun Kuang
Committed by GitHub

Avoid NaN in feature normalization. (#2186)

@@ -49,6 +49,11 @@ static void ComputeMeanAndInvStd(const float *p, int32_t num_rows, @@ -49,6 +49,11 @@ static void ComputeMeanAndInvStd(const float *p, int32_t num_rows,
49 (*mean)[i] = t; 49 (*mean)[i] = t;
50 50
51 float stddev = std::sqrt(sum_sq[i] / num_rows - t * t); 51 float stddev = std::sqrt(sum_sq[i] / num_rows - t * t);
  52 +
  53 + if (stddev != stddev) {
  54 + stddev = 0;
  55 + }
  56 +
52 (*inv_stddev)[i] = 1.0f / (stddev + 1e-5f); 57 (*inv_stddev)[i] = 1.0f / (stddev + 1e-5f);
53 } 58 }
54 } 59 }