message: Change LOG(WARNING) to LOG_FIRST_N(WARNING, 1) for "ignored seed" warnings
  Without this, programs which have hundreds of random ops will end up flooding
  the tpu_worker logs with duplicate warning messages.
diff: @@ -49,7 +49,7 @@ class RandomUniformOp : public XlaOpKernel {
  OP_REQUIRES_OK(ctx, TensorShapeToXLAShape(dtype, shape, &xla_shape));
  xla::XlaBuilder* b = ctx->builder();
  - LOG(WARNING)
  + LOG_FIRST_N(WARNING, 1)
  << "Warning: Using tf.random.uniform with XLA compilation will ignore "
  "seeds; consider using tf.random.stateless_uniform instead if "
  "reproducible behavior is desired.";
  @@ -154,7 +154,8 @@ class RandomShuffleOp : public XlaOpKernel {
  // Generate the random swaps for the indices.
  auto swaps_shape = xla::ShapeUtil::MakeShape(xla::S32, {n});
  - LOG(WARNING) << "Warning: Using tf.random.shuffle with XLA compilation "
  + LOG_FIRST_N(WARNING, 1)
  + << "Warning: Using tf.random.shuffle with XLA compilation "
  "will ignore seeds.";
  auto swaps =
  xla::RngUniform(xla::ConstantR0<int32>(builder, 0),
  @@ -236,7 +237,7 @@ class RandomUniformIntOp : public XlaOpKernel {
  auto minval = ctx->Input(1);
  auto maxval = ctx->Input(2);
  - LOG(WARNING)
  + LOG_FIRST_N(WARNING, 1)
  << "Warning: Using tf.random.uniform with XLA compilation will ignore "
  "seeds; consider using tf.random.stateless_uniform instead if "
  "reproducible behavior is desired.";
  @@ -296,7 +297,8 @@ class TruncatedNormalOp : public XlaOpKernel {
  xla::XlaOp one = xla::One(b, xla_shape.element_type());
  xla::XlaOp min_positive =
  xla::MinPositiveNormalValue(b, xla_shape.element_type());
  - LOG(WARNING) << "Warning: Using tf.random.truncated_normal with XLA "
  + LOG_FIRST_N(WARNING, 1)
  + << "Warning: Using tf.random.truncated_normal with XLA "
  "compilation will ignore seeds; consider using "
  "tf.random.stateless_truncated_normal instead if "
  "reproducible behavior is desired.";
  @@ -328,7 +330,8 @@ class ParameterizedTruncatedNormalOp : public XlaOpKernel {
  xla::XlaOp one = xla::One(b, xla_shape.element_type());
  xla::XlaOp min_positive =
  xla::MinPositiveNormalValue(b, xla_shape.element_type());
  - LOG(WARNING) << "Warning: Using tf.random.truncated_normal with XLA "
  + LOG_FIRST_N(WARNING, 1)
  + << "Warning: Using tf.random.truncated_normal with XLA "
  "compilation will ignore seeds; consider using "
  "tf.random.stateless_truncated_normal instead if "
  "reproducible behavior is desired.";
  