'Sets up context and output layers, as well as a final softmax.'

def __init__(self, component):

    super(LayerNormBasicLSTMNetwork, self).__init__(component)
    self._train_cell = tf.contrib.rnn.MultiRNNCell(self._create_train_cells())
    self._inference_cell = tf.contrib.rnn.MultiRNNCell(self._create_inference_cells())
    def _cell_closure(scope):
        'Applies    the    LSTM    cell    to    placeholder    inputs    and    state.'
        placeholder_inputs = tf.placeholder(dtype=tf.float32, shape=(1, self._concatenated_input_dim))
        placeholder_substates = []
        for num_units in self._hidden_layer_sizes:
            placeholder_substate = tf.contrib.rnn.LSTMStateTuple(tf.placeholder(dtype=tf.float32, shape=(1, num_units)), tf.placeholder(dtype=tf.float32, shape=(1, num_units)))
            placeholder_substates.append(placeholder_substate)
        placeholder_state = tuple(placeholder_substates)
        self._train_cell(inputs=placeholder_inputs, state=placeholder_state, scope=scope)
    self._capture_variables_as_params(_cell_closure)
