code: def outer(a, b, out=None):
      """Returns the outer product of two vectors.
  
      The input arrays are flattened into 1-D vectors and then it performs outer
      product of these vectors.
  
      Args:
          a (cupy.ndarray): The first argument.
          b (cupy.ndarray): The second argument.
          out (cupy.ndarray): Output array.
  
      Returns:
          cupy.ndarray: 2-D array of the outer product of ``a`` and ``b``.
  
      .. seealso:: :func:`numpy.outer`
  
      """
      return cupy.multiply(
          a.ravel()[:, None], b.ravel()[None, :], out=out
      )
  
file_path: cupy/cupy/linalg/_product.py
imports: import collections.abc
  import numbers
  import numpy
  import cupy
  from cupy import _core
  from cupy._core import internal
  from cupy._core._gufuncs import _GUFunc
  from cupy.linalg import _solve
  from cupy.linalg import _util
label_desc: Use image node_id 5 for calling a global function with example usage: outer(a, b, out) and returns: cupy