class_docstr: Classifies nodes with a simple Graph Convolutional Network.
class_docstr_tok: ["Classifies","nodes","with","a","simple","Graph","Convolutional","Network","."]
code: def __init__(
      self,
      seq_length,
      num_classes,
      hidden_units=16,
      dropout_rate=0.25,
      **kwargs,
  ):
      super(GraphConvolutionalNodeClassifier, self).__init__(**kwargs)
      self._dense_features = tf.keras.layers.DenseFeatures(
          [
              tf.feature_column.numeric_column(
                  "words", shape=(seq_length,)
              ),
          ]
      )
      # First GCN block with shared edge and node encoder.
      self._node_encoder_model1 = tf.keras.layers.Dense(hidden_units)
      self._edge_model1 = self._node_encoder_model1
      self._node_model1 = tf.keras.Sequential(
          [
              tf.keras.layers.Dropout(dropout_rate),
              tf.keras.layers.Dense(
                  hidden_units, activation=tf.keras.activations.relu
              ),
          ]
      )
      # Second GCN block.
      self._edge_model2 = tf.keras.layers.Dense(
          hidden_units, activation=tf.keras.activations.relu
      )
      self._node_encoder_model2 = tf.keras.layers.Dense(
          hidden_units, activation=tf.keras.activations.relu
      )
      self._node_model2 = tf.keras.Sequential(
          [
              tf.keras.layers.Dropout(dropout_rate),
              tf.keras.layers.Dense(num_classes, name="logits"),
          ]
      )
  
imports: import functools
  from typing import Dict, Optional, Text
  import graph_nets
  import neural_structured_learning.configs
  import neural_structured_learning.keras
  import neural_structured_learning.lib
  import sonnet.v2
  import tensorflow
label_desc: Use image node_id 1 to create a new GraphConvolutionalNodeClassifier object from inherited base classes: NodeGraphModel with example: obj = GraphConvolutionalNodeClassifier(seq_length, num_classes, hidden_units, dropout_rate)