class_docstr: Torch implementation of CLIP from
  https://github.com/mlfoundations/open_clip.
  
  Args:
      config: a :class:`TorchOpenClipModelConfig`
class_docstr_tok: ["Torch","implementation","of","CLIP","from","https",":","\/\/github.com\/mlfoundations\/open_clip",".","Args",":","config",":","a",":","class",":","`","TorchOpenClipModelConfig","`"]
code: def _get_class_logits(self, text_features, image_features):
      # source: https://github.com/openai/CLIP/blob/main/README.md
      image_features = image_features / image_features.norm(
          dim=1, keepdim=True
      )
      text_features = text_features / text_features.norm(
          dim=1, keepdim=True
      )
      logit_scale = self._model.logit_scale.exp()
      logits_per_image = (
          logit_scale * image_features @ text_features.t()
      )
      logits_per_text = logits_per_image.t()
      return logits_per_image, logits_per_text
  
imports: import logging
  import fiftyone.core.models
  import fiftyone.core.utils
  import fiftyone.utils.torch
  import fiftyone.zoo.models
  import torch
label_desc: Use image node_id 8 for calling the TorchOpenClipModel obj's underlying member method code with example usage: obj._get_class_logits(text_features, image_features) and returns: logits_per_image,  logits_per_text