class_docstr: This is a helper class that provides housekeeping for LSTM cells.
  
  This may be useful for alternative LSTM and similar type of cells.
  The subclasses must implement `_call_cell` method and `num_units` property.
docstr: Produce `out`, s.t. out(i, j) = data(indices(i), i, j).
docstr_tok: ["Produce","`","out","`",",","s.t",".","out","(","i",",","j",")","=","data","(","indices","(","i",")",",","i",",","j",")","."]
code: def _gather_states(self, data, indices, batch_size):
      """Produce `out`, s.t. out(i, j) = data(indices(i), i, j)."""
      return array_ops.gather_nd(
          data,
          array_ops.stack(
              [indices, math_ops.range(batch_size)], axis=1
          ),
      )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import six
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.keras.engine import input_spec
  from tensorflow.python.layers import base
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import gen_rnn_ops
  from tensorflow.python.ops import init_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import nn_ops
  from tensorflow.python.ops import rnn_cell_impl
label_desc: Use image node_id 4 for calling the LSTMBlockWrapper obj's underlying member method code with example usage: obj._gather_states(data, indices, batch_size) and returns: array_ops