code: def funcs_allclose(f, backends, backend_tensors, rtol=0, atol=1e-7):
      """
      For each backends, calls f with its tensors, and assert the results to be
      all close.
  
      Arguments:
          f (lambda): Usage f(backend, *tensors)
          backend (Backend or numpy): one of (np, NervanaGPU, NervanaCPU, NervanaMKL)
          tensors (list): list of tensors
          rtol (float, optional): Relative tolerance.
          atol (float, optional): Absolute tolerance.
  
      Returns:
          bool: If the results of fs is close
      """
      # call funcs to get results
      results = []
      for backend, tensors in zip(backends, backend_tensors):
          results.append(call_func(f, backend, tensors))
  
      # assert results to be equal
      return tensors_allclose(results, rtol=rtol, atol=atol)
  
file_path: neon/tests/utils.py
imports: from builtins import zip
  import numpy
  import numpy.random
  from neon import logger
  from neon.backends.backend import Tensor
label_desc: Use image node_id 6 for calling a global function with example usage: funcs_allclose(f, backends, backend_tensors, rtol, atol) and returns: tensors_allclose