code: def on_batch_end(self, iteration, **kwargs):
          "Switch the model if necessary."
          if self.learn.gan_trainer.gen_mode:
              self.n_g += 1
              n_iter,n_in,n_out = self.n_gen,self.n_c,self.n_g
          else:
              self.n_c += 1
              n_iter,n_in,n_out = self.n_crit,self.n_g,self.n_c
          target = n_iter if isinstance(n_iter, int) else n_iter(n_in)
          if target == n_out:
              self.learn.gan_trainer.switch()
              self.n_c,self.n_g = 0,f on_batch_end(self, iteration, **kwargs):
          "Switch the model if necessary."
          if self.learn.gan_trainer.gen_mode:
              self.n_g += 1
              n_iter,n_in,n_out = self.n_gen,self.n_c,self.n_g
          else:
              self.n_c += 1
              n_iter,n_in,n_out = self.n_crit,self.n_g,self.n_c
          target = n_iter if isinstance(n_iter, int) else n_iter(n_in)
          if target == n_out:
              self.learn.gan_trainer.switch()
              self.n_c,self.n_g = 0,0
docs: Switch the model if necessary.