'See base class.'

def create(self, fixed_embeddings, linked_embeddings, context_tensor_arrays, attention_tensor, during_training, stride=None):

    check.Eq(len(context_tensor_arrays), (2 * len(self._hidden_layer_sizes)), 'require    two    context    tensors    per    hidden    layer')
    length = context_tensor_arrays[0].size()
    substates = []
    for (index, num_units) in enumerate(self._hidden_layer_sizes):
        state_c = context_tensor_arrays[(2 * index)].read((length - 1))
        state_h = context_tensor_arrays[((2 * index) + 1)].read((length - 1))
        state_c.set_shape([tf.Dimension(None), num_units])
        state_h.set_shape([tf.Dimension(None), num_units])
        substates.append(tf.contrib.rnn.LSTMStateTuple(state_c, state_h))
    state = tuple(substates)
    input_tensor = dragnn.get_input_tensor(fixed_embeddings, linked_embeddings)
    cell = (self._train_cell if during_training else self._inference_cell)
    def _cell_closure(scope):
        'Applies    the    LSTM    cell    to    the    current    inputs    and    state.'
        return cell(input_tensor, state, scope)
    (unused_h, state) = self._apply_with_captured_variables(_cell_closure)
    output_tensors = []
    for new_substate in state:
        (new_c, new_h) = new_substate
        output_tensors.append(new_c)
        output_tensors.append(new_h)
    return self._append_base_layers(output_tensors)
