class_docstr: Geometric median.
  
  Parameters
  ----------
  space : Manifold
      Equipped manifold.
  max_iter : int
      Maximum number of iterations for the algorithm.
      Optional, default : 100
  lr : float
      Learning rate to be used for the algorithm.
      Optional, default : 1.0
  init_point : array-like, shape=[*space.shape]
      Initialization to be used in the start.
      Optional, default : None, in which case it uses last sample.
  print_every : int
      Print updated median after print_every iterations.
      Optional, default : None
  epsilon : float
      Tolerance for stopping the algorithm (distance between two successive
      estimates).
      Optional, default : gs.atol
  
  Attributes
  ----------
  estimate_ : array-like, shape=[*space.shape]
      If fit, geometric median.
  
  Notes
  -----
  * Required metric methods: `dist`, `log`, `exp`.
  
  References
  ----------
  .. [FVJ2009] Fletcher PT, Venkatasubramanian S and Joshi S.
      "The geometric median on Riemannian manifolds with application to
      robust atlas estimation", NeuroImage, 2009
      https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2735114/
code: def __init__(
      self,
      space,
      max_iter=100,
      lr=1.0,
      init_point=None,
      print_every=None,
      epsilon=gs.atol,
  ):
      self.space = space
      self.max_iter = max_iter
      self.lr = lr
      self.init_point = init_point
      self.print_every = print_every
      self.epsilon = epsilon
  
      self.estimate_ = None
  
imports: import logging
  from sklearn.base import BaseEstimator
  import geomstats.backend
label_desc: Use image node_id 1 to create a new GeometricMedian object from inherited base classes: BaseEstimator with example: obj = GeometricMedian(space, max_iter, lr, init_point, print_every, epsilon)