models_mnist/model.py [33:67]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class CorefNMN:
  def __init__(self, params, assemblers, reuse=None):
    # train mode
    params['train_mode'] = 'test_split' not in params
    print('Building model with train_model as: ' + str(params['train_mode']))

    self.params = params
    self.assemblers = assemblers

    # module phases
    self.phases = ['generate_program', 'execute_program', 'generate_answer']

    # initializing input and output placeholders
    self.inputs = {ii: {} for ii in self.phases}
    self.outputs = self.inputs.copy()

    # build place holders for inputs and outputs in the tensorflow graph
    holders = self._build_placeholders(params)
    self.holders = holders

    with tf.variable_scope(params['model'], reuse=reuse):
      # keep track of all outputs
      output_pool = {}

      # Part 1: Seq2seq RNN to generate module layout tokens
      with tf.variable_scope('generate_program'):
        self.generator = ProgramGenerator(holders, assemblers['ques'], params)
        self.inputs['generate_program'] = self.generator.get_inputs()
        self.outputs['generate_program'] = self.generator.get_outputs()
        # add outputs to pool
        output_pool.update(self.outputs['generate_program'])

      # Part 2: Neural Module Network
      with tf.variable_scope('execute_program'):
        self.executor = ProgramExecutor(holders, output_pool,
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



models_vd/model.py [33:67]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class CorefNMN:
  def __init__(self, params, assemblers, reuse=None):
    # train mode
    params['train_mode'] = 'test_split' not in params
    print('Building model with train_model as: ' + str(params['train_mode']))

    self.params = params
    self.assemblers = assemblers

    # module phases
    self.phases = ['generate_program', 'execute_program', 'generate_answer']

    # initializing input and output placeholders
    self.inputs = {ii: {} for ii in self.phases}
    self.outputs = self.inputs.copy()

    # build place holders for inputs and outputs in the tensorflow graph
    holders = self._build_placeholders(params)
    self.holders = holders

    with tf.variable_scope(params['model'], reuse=reuse):
      # keep track of all outputs
      output_pool = {}

      # Part 1: Seq2seq RNN to generate module layout tokens
      with tf.variable_scope('generate_program'):
        self.generator = ProgramGenerator(holders, assemblers['ques'], params)
        self.inputs['generate_program'] = self.generator.get_inputs()
        self.outputs['generate_program'] = self.generator.get_outputs()
        # add outputs to pool
        output_pool.update(self.outputs['generate_program'])

      # Part 2: Neural Module Network
      with tf.variable_scope('execute_program'):
        self.executor = ProgramExecutor(holders, output_pool,
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



