code: def _tensor_batch_dot(t1: Tensor, t2: Tensor) -> Tensor:
      r"""
      Computes pairwise dot product between two tensors
  
      Args:
          Tensors t1 and t2 are feature vectors with dimension (batch_size_1, *) and
          (batch_size_2,  *). The * dimensions must match in total number of elements.
  
      Returns:
          Tensor with shape (batch_size_1, batch_size_2) containing the pairwise dot
          products. For example, Tensor[i][j] would be the dot product between
          t1[i] and t2[j].
      """
  
      msg = (
          "Please ensure each batch member has the same feature dimension. "
          f"First input has {torch.numel(t1) / t1.shape[0]} features, and "
          f"second input has {torch.numel(t2) / t2.shape[0]} features."
      )
      assert (
          torch.numel(t1) / t1.shape[0] == torch.numel(t2) / t2.shape[0]
      ), msg
  
      return torch.mm(
          t1.view(t1.shape[0], -1),
          t2.view(t2.shape[0], -1).T,
      )
  
imports: import warnings
  from functools import reduce
  from typing import Any, Callable, Iterable, List, NamedTuple, Optional, Tuple, TYPE_CHECKING, Union
  import torch
  import torch.nn
  from captum._utils.common import _get_module_from_name, _parse_version
  from captum._utils.gradient import _compute_jacobian_wrt_params, _compute_jacobian_wrt_params_with_sample_wise_trick
  from captum._utils.progress import progress
  from torch import Tensor
  from torch.nn import Module
  from torch.utils.data import DataLoader, Dataset
label_desc: Use image node_id 1 for calling a global function with example usage: _tensor_batch_dot(t1, t2) and returns: torch