class_docstr: Implementation of supervised GraphSAGE.
code: def build(self):
      samples1, support_sizes1 = self.sample(
          self.inputs1, self.layer_infos
      )
      num_samples = [
          layer_info.num_samples for layer_info in self.layer_infos
      ]
      self.outputs1, self.aggregators = self.aggregate(
          samples1,
          [self.features],
          self.dims,
          num_samples,
          support_sizes1,
          concat=self.concat,
          model_size=self.model_size,
      )
      dim_mult = 2 if self.concat else 1
  
      self.outputs1 = tf.nn.l2_normalize(self.outputs1, 1)
  
      dim_mult = 2 if self.concat else 1
      self.node_pred = layers.Dense(
          dim_mult * self.dims[-1],
          self.num_classes,
          dropout=self.placeholders["dropout"],
          act=lambda x: x,
      )
      # TF graph management
      self.node_preds = self.node_pred(self.outputs1)
  
      self._loss()
      grads_and_vars = self.optimizer.compute_gradients(self.loss)
      clipped_grads_and_vars = [
          (
              tf.clip_by_value(grad, -5.0, 5.0)
              if grad is not None
              else None,
              var,
          )
          for grad, var in grads_and_vars
      ]
      self.grad, _ = clipped_grads_and_vars[0]
      self.opt_op = self.optimizer.apply_gradients(
          clipped_grads_and_vars
      )
      self.preds = self.predict()
  
file_path: GraphSAGE/graphsage/supervised_models.py
imports: import tensorflow
  import graphsage.models
  import graphsage.layers
  from graphsage.aggregators import MeanAggregator, MaxPoolingAggregator, MeanPoolingAggregator, SeqAggregator, GCNAggregator
label_desc: Use image node_id 2 for calling the SupervisedGraphsage obj's underlying member method code with example usage: obj.build() without return types