code: def from_euler(
      angles: type_alias.TensorLike, name: str = "axis_angle_from_euler"
  ) -> Tuple[tf.Tensor, tf.Tensor]:
      r"""Converts Euler angles to an axis-angle representation.
  
      Note:
        The conversion is performed by first converting to a quaternion
        representation, and then by converting the quaternion to an axis-angle.
  
      Note:
        In the following, A1 to An are optional batch dimensions.
  
      Args:
        angles: A tensor of shape `[A1, ..., An, 3]`, where the last dimension
          represents the three Euler angles. `[A1, ..., An, 0]` is the angle about
          `x` in radians `[A1, ..., An, 1]` is the angle about `y` in radians and
          `[A1, ..., An, 2]` is the angle about `z` in radians.
        name: A name for this op that defaults to "axis_angle_from_euler".
  
      Returns:
        A tuple of two tensors, respectively of shape `[A1, ..., An, 3]` and
        `[A1, ..., An, 1]`, where the first tensor represents the axis, and the
        second represents the angle. The resulting axis is a normalized vector.
      """
      with tf.name_scope(name):
          quaternion = quaternion_lib.from_euler(angles)
          return from_quaternion(quaternion)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  from typing import Tuple
  import tensorflow
  from tensorflow_graphics.geometry.transformation import quaternion
  from tensorflow_graphics.geometry.transformation import rotation_matrix_3d
  from tensorflow_graphics.math import vector
  from tensorflow_graphics.util import asserts
  from tensorflow_graphics.util import export_api
  from tensorflow_graphics.util import safe_ops
  from tensorflow_graphics.util import shape
  from tensorflow_graphics.util import type_alias
label_desc: Use image node_id 1 for calling a global function with example usage: from_euler(angles, name) and returns: from_quaternion