class_docstr: Clip based content filtering model for NSFW.
class_docstr_tok: ["Clip","based","content","filtering","model","for","NSFW","."]
docstr: Compute cosine similarity between prediction tensor and target tensor
  Args:
      prediction: Tensor of shape [X, H] for prediction embedding
      target: Tensor of shape [Y, H] for target to compare
  Returns:
      Similarity matrix of shape [X, Y] and value range [-1, 1]
docstr_tok: ["Compute","cosine","similarity","between","prediction","tensor","and","target","tensor","Args",":","prediction",":","Tensor","of","shape","[","X",",","H","]","for","prediction","embedding","target",":","Tensor","of","shape","[","Y",",","H","]","for","target","to","compare","Returns",":","Similarity","matrix","of","shape","[","X",",","Y","]","and","value","range","[","-1",",","1","]"]
code: def cosine_similarity(
      self, prediction: torch.Tensor, target: torch.Tensor
  ) -> torch.Tensor:
      """Compute cosine similarity between prediction tensor and target tensor
      Args:
          prediction: Tensor of shape [X, H] for prediction embedding
          target: Tensor of shape [Y, H] for target to compare
      Returns:
          Similarity matrix of shape [X, Y] and value range [-1, 1]
      """
      normalized_prediction = F.normalize(prediction)
      normalized_target = F.normalize(target)
  
      return torch.matmul(normalized_prediction, normalized_target.t())
  
imports: import functools
  import itertools
  from typing import List, Optional, Union
  import torch
  import torch.nn
  import torch.nn.functional
  from apex.transformer.pipeline_parallel.utils import get_num_microbatches
  from megatron.core import parallel_state
  from megatron.core.pipeline_parallel.schedules import get_forward_backward_func
  from omegaconf.dictconfig import DictConfig
  from pytorch_lightning.accelerators import CPUAccelerator
  from pytorch_lightning.trainer.trainer import Trainer
  from nemo.collections.multimodal.data.clip.clip_dataset import tokenize
  from nemo.collections.multimodal.data.nsfw.nsfw_dataset import build_dataset
  from nemo.collections.multimodal.models.vision_language_foundation.clip.megatron_clip_models import CLIPTextTransformer, CLIPVisionTransformer
  from nemo.collections.nlp.models.language_modeling.megatron_base_model import MegatronBaseModel
  from nemo.collections.nlp.modules.common.megatron.build_model import build_model
  from nemo.collections.nlp.modules.common.megatron.module import Float16Module, MegatronModule
  from nemo.collections.nlp.parts.utils_funcs import get_last_rank, torch_dtype_from_precision
  from nemo.core.classes.common import PretrainedModelInfo
  from nemo.utils import logging
label_desc: Use image node_id 4 for calling the ContentFilteringModel obj's underlying member method code with example usage: obj.cosine_similarity(prediction, target) and returns: torch