class_docstr: ### Description
      implementation of
          Hu et al., "Freehand Ultrasound Image Simulation with Spatially-Conditioned
          Generative Adversarial Networks", MICCAI RAMBO 2017
          https://arxiv.org/abs/1707.05392
  
  ### Building blocks
  [GENERATOR]         - See ImageGenerator below
  [DISCRIMINATOR]     - See ImageDiscriminator below
  Note: See niftynet.layer.gan_blocks for layer_op
  
  ### Diagram
  
  RANDOM NOISE --> [GENERATOR] --> [DISCRIMINATOR] --> fake logits
  TRAINING SET ------------------> [DISCRIMINATOR] --> real logits
  
  ### Constraints
class_docstr_tok: ["#","#","#","Description","implementation","of","Hu","et","al.",",","``","Freehand","Ultrasound","Image","Simulation","with","Spatially-Conditioned","Generative","Adversarial","Networks","''",",","MICCAI","RAMBO","2017","https",":","\/\/arxiv.org\/abs\/1707.05392","#","#","#","Building","blocks","[","GENERATOR","]","-","See","ImageGenerator","below","[","DISCRIMINATOR","]","-","See","ImageDiscriminator","below","Note",":","See","niftynet.layer.gan_blocks","for","layer_op","#","#","#","Diagram","RANDOM","NOISE","--",">","[","GENERATOR","]","--",">","[","DISCRIMINATOR","]","--",">","fake","logits","TRAINING","SET","--","--","--","--","--","--","--","--","--",">","[","DISCRIMINATOR","]","--",">","real","logits","#","#","#","Constraints"]
code: def __init__(self, name="simulator_GAN"):
      super(SimulatorGAN, self).__init__(
          generator=ImageGenerator(name="generator"),
          discriminator=ImageDiscriminator(name="discriminator"),
          clip=None,
          name=name,
      )
  
imports: from __future__ import absolute_import, print_function, division
  import numpy
  import tensorflow
  from niftynet.layer.activation import ActiLayer
  from niftynet.layer.convolution import ConvolutionalLayer
  from niftynet.layer.deconvolution import DeconvolutionalLayer
  from niftynet.layer.fully_connected import FullyConnectedLayer
  from niftynet.layer.gan_blocks import BaseDiscriminator
  from niftynet.layer.gan_blocks import BaseGenerator
  from niftynet.layer.gan_blocks import GANImageBlock
label_desc: Use image node_id 1 to create a new SimulatorGAN object from inherited base classes: GANImageBlock with example: obj = SimulatorGAN(name)