code: def random_tangent_vec(self, base_point):
      n_points = base_point.shape[0] if base_point.ndim > 2 else 1
      point = self.random_point(n_points=n_points)
  
      geo = self.space.metric.geodesic(
          initial_point=base_point, end_point=point
      )
  
      times = gs.linspace(0.0, 1.0, self.n_discretized_curves)
  
      geod = geo(times)
  
      return (
          self.n_discretized_curves
          * (geod[..., 1, :, :] - geod[..., 0, :, :])
      ) / self.amplitude
  
imports: import geomstats.backend
  from geomstats.geometry.base import ComplexMatrixVectorSpace
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.general_linear import SquareMatrices
  from geomstats.vectorization import get_n_points
label_desc: Use image node_id 2 for calling the ShapeBundleRandomDataGenerator obj's underlying member method code with example usage: obj.random_tangent_vec(base_point) and returns: unknown