code: def on_test_epoch_end(self) -> None:
      dataset_name = self.test_dataset_name
      assert self.test_fid is not None
      assert self.test_fid_swav is not None
      assert self.test_kid is not None
      if dataset_name == "kodak":
          self.log(f"test/{dataset_name}_fid", 0.0)
          self.log(f"test/{dataset_name}_fid_swav", 0.0)
          self.log(f"test/{dataset_name}_kid", 0.0)
      else:
          self.log(f"test/{dataset_name}_fid", self.test_fid.compute())
          self.log(
              f"test/{dataset_name}_fid_swav",
              self.test_fid_swav.compute(),
          )
          self.log(
              f"test/{dataset_name}_kid", self.test_kid.compute()[0]
          )
  
imports: import logging
  from typing import Optional, Union
  import torch
  from lightning.pytorch import LightningModule
  from torch import Tensor
  from torchmetrics import MeanSquaredError, PeakSignalNoiseRatio
  from torchmetrics.image import FrechetInceptionDistance, LearnedPerceptualImagePatchSimilarity
  import neuralcompression.functional
  import neuralcompression.metrics
  from neuralcompression import HyperpriorOutput
  from neuralcompression.metrics import MultiscaleStructuralSimilarity
label_desc: Use image node_id 10 for calling the ImageModule obj's underlying member method code with example usage: obj.on_test_epoch_end() without return types