code: def train_student():
      mlp.train()
      mlp_optimizer.zero_grad()
      out = mlp(data.x)
      loss1 = F.cross_entropy(
          out[data.train_mask], data.y[data.train_mask]
      )
      loss2 = F.kl_div(
          out.log_softmax(dim=-1),
          y_soft,
          reduction="batchmean",
          log_target=True,
      )
      loss = args.lamb * loss1 + (1 - args.lamb) * loss2
      loss.backward()
      mlp_optimizer.step()
      return float(loss)
  
file_path: pytorch_geometric/examples/glnn.py
imports: import argparse
  import os.path
  import time
  import torch
  import torch.nn.functional
  import torch_geometric.transforms
  from torch_geometric.datasets import Planetoid
  from torch_geometric.nn import GCN, MLP
label_desc: Use image node_id 3 for calling a global function with example usage: train_student() and returns: float