class_docstr: Compute the phase of the complex input in radian, resulting in a float tensor (tflite compatible).
  
  Note TF lite does not natively support atan, used in tf.math.angle, so an
  approximation is provided. You may want to use this approximation if you
  generate data using a non-tf-lite compatible STFT (faster) but want the same
  approximations in the training data.
  
  Args:
      approx_atan_accuracy (`int`): if `None` will use `tf.math.angle()` to
          calculate the phase accurately. If an `int` this is the number of
          iterations to calculate the approximate `atan()` using a tflite compatible
          method. the higher the number the more accurate e.g.
          `approx_atan_accuracy=29000`. You may want to experiment with adjusting
          this number: trading off accuracy with inference speed.
  
  Example:
      ::
  
          input_shape = (2048, 1)  # mono signal
          model = Sequential()
          model.add(kapre.STFTTflite(n_fft=1024, hop_length=512, input_shape=input_shape))
          model.add(PhaseTflite(approx_atan_accuracy=5000))
          # now the shape is (batch, n_frame=3, n_freq=513, ch=1) and dtype is float
class_docstr_tok: ["Compute","the","phase","of","the","complex","input","in","radian",",","resulting","in","a","float","tensor","(","tflite","compatible",")",".","Note","TF","lite","does","not","natively","support","atan",",","used","in","tf.math.angle",",","so","an","approximation","is","provided",".","You","may","want","to","use","this","approximation","if","you","generate","data","using","a","non-tf-lite","compatible","STFT","(","faster",")","but","want","the","same","approximations","in","the","training","data",".","Args",":","approx_atan_accuracy","(","`","int","`",")",":","if","`","None","`","will","use","`","tf.math.angle","(",")","`","to","calculate","the","phase","accurately",".","If","an","`","int","`","this","is","the","number","of","iterations","to","calculate","the","approximate","`","atan","(",")","`","using","a","tflite","compatible","method",".","the","higher","the","number","the","more","accurate","e.g",".","`","approx_atan_accuracy=29000","`",".","You","may","want","to","experiment","with","adjusting","this","number",":","trading","off","accuracy","with","inference","speed",".","Example",":",":",":","input_shape","=","(","2048",",","1",")","#","mono","signal","model","=","Sequential","(",")","model.add","(","kapre.STFTTflite","(","n_fft=1024",",","hop_length=512",",","input_shape=input_shape",")",")","model.add","(","PhaseTflite","(","approx_atan_accuracy=5000",")",")","#","now","the","shape","is","(","batch",",","n_frame=3",",","n_freq=513",",","ch=1",")","and","dtype","is","float"]
docstr: Args:
      x (real): input is real tensor with five
          dimensions (last dim is re/imag)
  
  Returns:
      (float `Tensor`): phase of `x` (Radian)
docstr_tok: ["Args",":","x","(","real",")",":","input","is","real","tensor","with","five","dimensions","(","last","dim","is","re\/imag",")","Returns",":","(","float","`","Tensor","`",")",":","phase","of","`","x","`","(","Radian",")"]
code: def call(self, x):
      """
      Args:
          x (real): input is real tensor with five
              dimensions (last dim is re/imag)
  
      Returns:
          (float `Tensor`): phase of `x` (Radian)
      """
      return atan2_tflite(
          x[:, :, :, :, 1],
          x[:, :, :, :, 0],
          n=self.approx_atan_accuracy,
      )
  
file_path: kapre/kapre/time_frequency_tflite.py
imports: import tensorflow
  from .backend import _CH_FIRST_STR, _CH_LAST_STR, _CH_DEFAULT_STR
  from .tflite_compatible_stft import stft_tflite, atan2_tflite
  from .time_frequency import STFT, InverseSTFT, Magnitude, Phase
label_desc: Use image node_id 1 for calling the PhaseTflite obj's underlying member method code with example usage: obj.call(x) and returns: atan2_tflite