class_docstr: Aggregates via a standard LSTM.
      
class_docstr_tok: ["Aggregates","via","a","standard","LSTM","."]
code: def _call(self, inputs):
      self_vecs, neigh_vecs = inputs
  
      dims = tf.shape(neigh_vecs)
      batch_size = dims[0]
      initial_state = self.cell.zero_state(batch_size, tf.float32)
      used = tf.sign(tf.reduce_max(tf.abs(neigh_vecs), axis=2))
      length = tf.reduce_sum(used, axis=1)
      length = tf.maximum(length, tf.constant(1.0))
      length = tf.cast(length, tf.int32)
  
      with tf.variable_scope(self.name) as scope:
          try:
              rnn_outputs, rnn_states = tf.nn.dynamic_rnn(
                  self.cell,
                  neigh_vecs,
                  initial_state=initial_state,
                  dtype=tf.float32,
                  time_major=False,
                  sequence_length=length,
              )
          except ValueError:
              scope.reuse_variables()
              rnn_outputs, rnn_states = tf.nn.dynamic_rnn(
                  self.cell,
                  neigh_vecs,
                  initial_state=initial_state,
                  dtype=tf.float32,
                  time_major=False,
                  sequence_length=length,
              )
      batch_size = tf.shape(rnn_outputs)[0]
      max_len = tf.shape(rnn_outputs)[1]
      out_size = int(rnn_outputs.get_shape()[2])
      index = tf.range(0, batch_size) * max_len + (length - 1)
      flat = tf.reshape(rnn_outputs, [-1, out_size])
      neigh_h = tf.gather(flat, index)
  
      from_neighs = tf.matmul(neigh_h, self.vars["neigh_weights"])
      from_self = tf.matmul(self_vecs, self.vars["self_weights"])
  
      output = tf.add_n([from_self, from_neighs])
  
      if not self.concat:
          output = tf.add_n([from_self, from_neighs])
      else:
          output = tf.concat([from_self, from_neighs], axis=1)
  
      # bias
      if self.bias:
          output += self.vars["bias"]
  
      return self.act(output)
  
imports: import tensorflow
  from .layers import Layer, Dense
  from .inits import glorot, zeros
label_desc: Use image node_id 2 for calling the SeqAggregator obj's underlying member method code with example usage: obj._call(inputs) and returns: self