class_docstr: A GAN trainer which runs two optimization ops with a certain ratio.
class_docstr_tok: ["A","GAN","trainer","which","runs","two","optimization","ops","with","a","certain","ratio","."]
code: def run_step(self):
      # Define the training iteration
      if self.global_step % (self._d_period) == 0:
          self.hooked_sess.run(self.d_min)
      if self.global_step % (self._g_period) == 0:
          self.hooked_sess.run(self.g_min)
  
imports: import numpy
  import tensorflow
  from tensorpack import BatchNorm, DataFlow, ModelDescBase, StagingInput, TowerTrainer, argscope
  from tensorpack.graph_builder import DataParallelBuilder, LeastLoadedDeviceSetter
  from tensorpack.tfutils.summary import add_moving_summary
  from tensorpack.tfutils.tower import TowerContext, TowerFunc
  from tensorpack.utils import logger
  from tensorpack.utils.argtools import memoized_method
label_desc: Use image node_id 2 for calling the SeparateGANTrainer obj's underlying member method code with example usage: obj.run_step() without return types