docstr: Performs validation of data in batches
  
  :param val_batch: Batch data
  :param batch_idx: Batch indices
  
  :return: output - valid step loss
docstr_tok: ["Performs","validation","of","data","in","batches",":","param","val_batch",":","Batch","data",":","param","batch_idx",":","Batch","indices",":","return",":","output","-","valid","step","loss"]
code: def validation_step(self, val_batch, batch_idx):
      """
      Performs validation of data in batches
  
      :param val_batch: Batch data
      :param batch_idx: Batch indices
  
      :return: output - valid step loss
      """
  
      input_ids = val_batch["input_ids"].to(self.device)
      attention_mask = val_batch["attention_mask"].to(self.device)
      targets = val_batch["targets"].to(self.device)
      output = self.forward(input_ids, attention_mask)
      loss = F.cross_entropy(output, targets)
      self.val_outputs.append(loss)
      return {"val_step_loss": loss}
  
imports: import math
  import os
  import lightning
  import pandas
  import torch
  import torch.nn.functional
  import torchtext.datasets
  from lightning.pytorch.callbacks import EarlyStopping, LearningRateMonitor, ModelCheckpoint
  from lightning.pytorch.cli import LightningCLI
  from sklearn.datasets import fetch_20newsgroups
  from sklearn.metrics import accuracy_score
  from sklearn.model_selection import train_test_split
  from torch import nn
  from torch.utils.data import DataLoader
  from torch.utils.data.dataset import random_split
  from torchdata.datapipes.iter import IterDataPipe
  from torchtext.data.functional import to_map_style_dataset
  from torchtext.datasets import AG_NEWS
  from transformers import BertModel, BertTokenizer
  import mlflow.pytorch
label_desc: Use image node_id 5 for calling the BertNewsClassifier obj's underlying member method code with example usage: obj.validation_step(val_batch, batch_idx) and returns: dict