class_docstr: XiTransform is the base class that implements three transformations necessary
  for the natural gradient calculation wrt any parameterization.
class_docstr_tok: ["XiTransform","is","the","base","class","that","implements","three","transformations","necessary","for","the","natural","gradient","calculation","wrt","any","parameterization","."]
docstr: Applies the transform so that `nat1`, `nat2` is mapped to `xi1`, `xi2`
  
  :param nat1: the θ₁ parameter
  :param nat2: the θ₂ parameter
  :return: tuple `xi1`, `xi2`
docstr_tok: ["Applies","the","transform","so","that","`","nat1","`",",","`","nat2","`","is","mapped","to","`","xi1","`",",","`","xi2","`",":","param","nat1",":","the","\u03b8\u2081","parameter",":","param","nat2",":","the","\u03b8\u2082","parameter",":","return",":","tuple","`","xi1","`",",","`","xi2","`"]
code: def naturals_to_xi(
      nat1: tf.Tensor, nat2: tf.Tensor
  ) -> Tuple[tf.Tensor, tf.Tensor]:
      """
      Applies the transform so that `nat1`, `nat2` is mapped to `xi1`, `xi2`
  
      :param nat1: the θ₁ parameter
      :param nat2: the θ₂ parameter
      :return: tuple `xi1`, `xi2`
      """
  
imports: import abc
  import functools
  from typing import Any, Callable, Dict, Optional, Sequence, Tuple, Union
  import tensorflow
  from check_shapes import check_shapes
  from ..base import AnyNDArray, Parameter, _to_constrained
label_desc: Use image node_id 3 for calling the XiTransform obj's underlying member method code with example usage: obj.naturals_to_xi(nat1, nat2) without return types