class_docstr: Base class for gradient descent.
  
  Parameters
  ----------
  max_iter : int, optional
      Maximum number of iterations for the gradient descent.
  epsilon : float, optional
      Tolerance for stopping the gradient descent.
  init_point : array-like, shape=[*metric.shape]
      Initial point.
      Optional, default : None. In this case the first sample of the input
      data is used.
  init_step_size : float
      Learning rate in the gradient descent.
      Optional, default: 1.
  verbose : bool
      Level of verbosity to inform about convergence.
      Optional, default: False.
class_docstr_tok: ["Base","class","for","gradient","descent",".","Parameters","--","--","--","--","--","max_iter",":","int",",","optional","Maximum","number","of","iterations","for","the","gradient","descent",".","epsilon",":","float",",","optional","Tolerance","for","stopping","the","gradient","descent",".","init_point",":","array-like",",","shape=","[","*","metric.shape","]","Initial","point",".","Optional",",","default",":","None",".","In","this","case","the","first","sample","of","the","input","data","is","used",".","init_step_size",":","float","Learning","rate","in","the","gradient","descent",".","Optional",",","default",":","1.","verbose",":","bool","Level","of","verbosity","to","inform","about","convergence",".","Optional",",","default",":","False","."]
code: def __init__(
      self,
      max_iter=32,
      epsilon=1e-4,
      init_point=None,
      init_step_size=1.0,
      verbose=False,
  ):
      self.max_iter = max_iter
      self.epsilon = epsilon
      self.init_step_size = init_step_size
      self.verbose = verbose
      self.init_point = init_point
  
imports: import abc
  import logging
  import math
  from sklearn.base import BaseEstimator
  import geomstats.backend
  import geomstats.errors
  from geomstats.geometry.discrete_curves import ElasticTranslationMetric, SRVTranslationMetric
  from geomstats.geometry.euclidean import EuclideanMetric
  from geomstats.geometry.hypersphere import HypersphereMetric
  from geomstats.geometry.matrices import MatricesMetric
  from geomstats.geometry.minkowski import MinkowskiMetric
label_desc: Use image node_id 1 to create a new BaseGradientDescent object from inherited base classes: abc with example: obj = BaseGradientDescent(max_iter, epsilon, init_point, init_step_size, verbose)