code: def test_configuration(
      self,
      temperature: float,
      normalize_output: bool,
      label_smoothing: float,
      batch_size: int = 16,
      target_count: int = 10,
  ):
      torch.random.manual_seed(0)
      logits = torch.randn(size=(batch_size, target_count))
      target = torch.randint(0, target_count, size=(batch_size,))
      criterion_ref = CrossEntropyMultipleOutputSingleTargetCriterion(
          temperature=temperature,
          normalize_output=normalize_output,
          label_smoothing=label_smoothing,
      )
      config = AttrDict(
          {
              "temperature": temperature,
              "normalize_output": normalize_output,
              "label_smoothing": label_smoothing,
          }
      )
      criterion = CrossEntropyMultipleOutputSingleTargetLoss(config)
      self.assertEqual(
          criterion(logits, target), criterion_ref(logits, target)
      )
  
imports: import logging
  import unittest
  from collections import namedtuple
  import torch
  import torch.nn
  import torch.optim
  from classy_vision.generic.distributed_util import set_cpu_device
  from parameterized import param, parameterized
  from vissl.config.attr_dict import AttrDict
  from vissl.losses.barlow_twins_loss import BarlowTwinsCriterion
  from vissl.losses.cross_entropy_multiple_output_single_target import CrossEntropyMultipleOutputSingleTargetCriterion, CrossEntropyMultipleOutputSingleTargetLoss
  from vissl.losses.distillation_loss import DistillationCriterion, DistillationLoss
  from vissl.losses.multicrop_simclr_info_nce_loss import MultiCropSimclrInfoNCECriterion
  from vissl.losses.simclr_info_nce_loss import SimclrInfoNCECriterion
  from vissl.losses.swav_loss import SwAVCriterion
label_desc: Use image node_id 6 for calling the TestCrossEntropyMultipleOutputSingleTargetLoss obj's underlying member method code with example usage: obj.test_configuration(temperature, normalize_output, label_smoothing, batch_size, target_count) without return types