'Constructs a structured learning graph.'

def MakeGraph(self, max_steps=10, beam_size=2, batch_size=1, **kwargs):

    assert (max_steps > 0), 'Empty    network    not    supported.'
    logging.info('MakeGraph    +    %s', kwargs)
    with self.test_session(graph=tf.Graph()) as sess:
        (feature_sizes, domain_sizes, embedding_dims, num_actions) = sess.run(gen_parser_ops.feature_size(task_context=self._task_context))
    embedding_dims = [8, 8, 8]
    hidden_layer_sizes = []
    learning_rate = 0.01
    builder = structured_graph_builder.StructuredGraphBuilder(num_actions, feature_sizes, domain_sizes, embedding_dims, hidden_layer_sizes, seed=1, max_steps=max_steps, beam_size=beam_size, gate_gradients=True, use_locking=True, use_averaging=False, check_parameters=False, **kwargs)
    builder.AddTraining(self._task_context, batch_size, learning_rate=learning_rate, decay_steps=1000, momentum=0.9, corpus_name='training-corpus')
    builder.AddEvaluation(self._task_context, batch_size, evaluation_max_steps=25, corpus_name=None)
    builder.training['inits'] = tf.group(name='inits', *builder.inits.values())
    return builder
