code: def _assert_equal_data(
      data1: Union[tf.Tensor, Sequence[tf.Tensor]],
      data2: Union[tf.Tensor, Sequence[tf.Tensor]],
  ) -> None:
      if isinstance(data1, tf.Tensor) and isinstance(data2, tf.Tensor):
          tf.debugging.assert_equal(data1, data2)
      else:
          for v1, v2 in zip(data1, data2):
              tf.debugging.assert_equal(v1, v2)
  
file_path: GPflow/gpflow/models/util.py
imports: from typing import Any, Callable, Sequence, Union
  import numpy
  import tensorflow
  from check_shapes import check_shapes
  from ..base import AnyNDArray
  from ..config import default_float
  from ..inducing_variables import InducingPoints, InducingVariables
  from .model import BayesianModel
  from .training_mixins import Data, ExternalDataTrainingLossMixin
label_desc: Use image node_id 2 for calling a global function with example usage: _assert_equal_data(data1, data2) without return types