class_docstr: A mixture agent for testing purposes that 'rotates' the weights.
  
  In every training step, the agent applies a rotation permuation on the agent
  mixture weights.
class_docstr_tok: ["A","mixture","agent","for","testing","purposes","that","'rotates","'","the","weights",".","In","every","training","step",",","the","agent","applies","a","rotation","permuation","on","the","agent","mixture","weights","."]
code: def _update_mixture_distribution(self, experience):
      weight_values = tf.identity(self._mixture_distribution.probs)
      new_values = tf.concat([weight_values[1:], weight_values[0:1]], 0)
      self._mixture_distribution.probs.assign(new_values)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from absl.testing import parameterized
  import numpy
  import tensorflow
  import tensorflow_probability
  from tf_agents.bandits.agents import lin_ucb_agent
  from tf_agents.bandits.agents import mixture_agent
  from tf_agents.bandits.agents import neural_epsilon_greedy_agent
  from tf_agents.bandits.drivers import driver_utils
  from tf_agents.bandits.policies import mixture_policy
  from tf_agents.networks import q_network
  from tf_agents.policies import utils
  from tf_agents.specs import tensor_spec
  from tf_agents.trajectories import policy_step
  from tf_agents.trajectories import time_step
  from tf_agents.utils import test_utils
label_desc: Use image node_id 1 for calling the WeightRotatingMixtureAgent obj's underlying member method code with example usage: obj._update_mixture_distribution(experience) without return types