code: def train_step(model, loss_fn, batch, dataset):
      (
          graph_list,
          x,
          m2v_x,
          y,
          label_y,
          label_idx,
      ) = batch
  
      rd_y = np.random.randint(0, 153, size=label_y.shape)
      rd_m = np.random.rand(label_y.shape[0]) < 0.15
      label_y[rd_m] = rd_y[rd_m]
  
      x = paddle.to_tensor(x, dtype="float32")
      m2v_x = paddle.to_tensor(m2v_x, dtype="float32")
      y = paddle.to_tensor(y, dtype="int64")
      label_y = paddle.to_tensor(label_y, dtype="int64")
      label_idx = paddle.to_tensor(label_idx, dtype="int64")
  
      graph_list = [
          (item[0].tensor(), paddle.to_tensor(item[2]))
          for item in graph_list
      ]
  
      out = model(graph_list, x, m2v_x, label_y, label_idx)
  
      return loss_fn(out, y)
  
imports: import os
  import argparse
  import traceback
  import paddle
  import re
  import io
  import tqdm
  import yaml
  import pgl
  import paddle
  import paddle.nn.functional
  import numpy
  import optimization
  from ogb.lsc import MAG240MEvaluator
  from easydict import EasyDict
  from dataset.data_generator_r_unimp_sample import MAG240M, DataGenerator
  import models
  from pgl.utils.logger import log
  from utils import save_model, infinite_loop, _create_if_not_exist, load_model
  from tensorboardX import SummaryWriter
  from collections import defaultdict
  import time
label_desc: Use image node_id 1 for calling a global function with example usage: train_step(model, loss_fn, batch, dataset) and returns: loss_fn