code: def kaiser_window(
      window_length: int,
      periodic: bool = True,
      beta: float = 12.0,
      *,
      dtype: Optional[tf.DType] = None,
      out: Optional[Union[tf.Tensor, tf.Variable]] = None,
  ) -> Union[tf.Tensor, tf.Variable]:
      if window_length < 2:
          return tf.ones([window_length], dtype=dtype)
      if periodic is False:
          return tf.signal.kaiser_window(
              window_length, beta, dtype=dtype
          )
      else:
          return tf.signal.kaiser_window(
              window_length + 1, beta, dtype=dtype
          )[:-1]
  
file_path: ivy/ivy/functional/backends/tensorflow/experimental/creation.py
imports: from typing import Union, Optional, Tuple
  import tensorflow
  from ivy.func_wrapper import with_unsupported_device_and_dtypes, with_unsupported_dtypes
  from ..None import backend_version
label_desc: Use image node_id 1 for calling a global function with example usage: kaiser_window(window_length, periodic, beta) and returns: tf, tf, tf