message: Minor refactor of BatchNormalization's build, where we create gamma before beta.
  This fixes a major compatibility issue between tf.keras and multi-backend keras,
  in which the BN weights saved by one version would be incorrectly loaded by
  the other version.
  This change will not have side effects outside of Keras.
diff: @@ -187,17 +187,6 @@ class BatchNormalization(base.Layer):
  self.input_spec = base.InputSpec(ndim=ndim,
  axes={self.axis: param_dim.value})
  - if self.center:
  - self.beta = self.add_variable(name='beta',
  - shape=(param_dim,),
  - initializer=self.beta_initializer,
  - regularizer=self.beta_regularizer,
  - constraint=self.beta_constraint,
  - trainable=True)
  - else:
  - self.beta = None
  - if self.fused:
  - self._beta_const = array_ops.constant(0.0, shape=(param_dim,))
  if self.scale:
  self.gamma = self.add_variable(name='gamma',
  shape=(param_dim,),
  @@ -210,6 +199,18 @@ class BatchNormalization(base.Layer):
  if self.fused:
  self._gamma_const = array_ops.constant(1.0, shape=(param_dim,))
  + if self.center:
  + self.beta = self.add_variable(name='beta',
  + shape=(param_dim,),
  + initializer=self.beta_initializer,
  + regularizer=self.beta_regularizer,
  + constraint=self.beta_constraint,
  + trainable=True)
  + else:
  + self.beta = None
  + if self.fused:
  + self._beta_const = array_ops.constant(0.0, shape=(param_dim,))
  +
  # Disable variable partitioning when creating the moving mean and variance
  try:
  if self._scope:
  