code: def __init__(self, dim, processing_steps=2, lstm_layers=2, **kwargs):
      super(GatedConv, self).__init__(aggr="add", **kwargs)
      self.dim = dim
      self.processing_steps = processing_steps
      self.lstm_layers = lstm_layers
      self.fc = [
          tf.layers.Dense(dim, use_bias=False)
          for _ in range(processing_steps)
      ]
      lstm_cells = [
          tf.nn.rnn_cell.GRUCell(num_units=dim)
          for _ in range(lstm_layers)
      ]
      self.rnn = tf.nn.rnn_cell.MultiRNNCell(lstm_cells)
  
file_path: euler/tf_euler/python/convolution/gated_graph_conv.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import tensorflow
  from tf_euler.python.convolution import conv
  from tf_euler.python.euler_ops import mp_ops
label_desc: Use image node_id 1 to create a new GatedConv object from inherited base classes: conv with example: obj = GatedConv(dim, processing_steps, lstm_layers)