code: def eval_bc_model(eval_dataloader, bc_trainer) -> torch.Tensor:
      total_xentropy_loss = 0
      for batch_idx, batch in enumerate(eval_dataloader):
          xentropy_loss = bc_trainer.validation_step(batch, batch_idx)
          total_xentropy_loss += xentropy_loss
      N_eval = len(eval_dataloader)
      eval_xentropy_loss = total_xentropy_loss / N_eval
  
      # at the last batch, check whether probs matches labels
      validation_prob_vs_label(bc_trainer, batch, batch_idx)
      return eval_xentropy_loss
  
imports: import logging
  import unittest
  from enum import Enum
  import pytorch_lightning
  import torch
  from pytorch_lightning import seed_everything
  from reagent.core import types
  from reagent.models.dqn import FullyConnectedDQN
  from reagent.optimizer.union import classes, Optimizer__Union
  from reagent.training.behavioral_cloning_trainer import BehavioralCloningTrainer
  from torch.utils.data import DataLoader
label_desc: Use image node_id 5 for calling a global function with example usage: eval_bc_model(eval_dataloader, bc_trainer) and returns: eval_xentropy_loss