Instance normalization and group normalization missing update
You should understand why does batch_norm need to add ops in UPDATE_OPS.
tf.layers.batch_normalization function will generate four variables, namely gamma, beta, moving_mean and moving_variance, and only gamma, beta are in tf.GraphKeys.TRAINABLE_VARIABLES. 
When it is in the training phase, moving_mean and moving_variance also need to be updated, so that if we set training parameter as 1 for tf.layers.batch_normalization, the function will add corresponding ops into tf.GraphKeys.UPDATE_OPS for updating moving_mean and moving_variance, whereas if we set training parameter as 0 for tf.layers.batch_normalization, the function will not do anything to tf.GraphKeys.UPDATE_OPS, since it doesn't need to update moving_mean and moving_variance in the test phase.
As for the group_norm and instance_norm, they only have beta and gamma variables, which have already been in the tf.GraphKeys.TRAINABLE_VARIABLES, so that there is no need to add any ops in tf.GraphKeys.UPDATE_OPS.
In tensorflow, there is well-known batch normalization which adds the weights update ops to tf.GraphKeys.UPDATE_OPS. But in the case of instance normalization there is no update op added. When using tf.contrib.layer.batch_norm, I can specify the is_training parameter which adds the update op to collection.
But for tf.contrib.layer.instance_norm and tf.contrib.layer.group_norm there is no such parameter, and also no op is added to tf.GraphKeys.UPDATE_OPS. 
Is this correct behaviour, or bug in tensorflow? How does the update op in instance normalization work then?