class_docstr: A step to execute Automated Machine Learning (AutoML) algorithms. This step will
  automatically split the data into train and validation splits, and execute an
  hyperparameter optimization on the splits to find the best hyperparameters.
  
  The :class:`BaseControllerLoop` is useful to possibly split the execution into multiple
  threads, or even multiple machines to decide how to execute the loop.
  
  The :class:`Trainer` is responsible for training the pipeline on the train and validation
  splits, as per the data split provided by the splitter, and the predicted data containers.
  
  It is to be noted that if the data container, after a prediction at train and validation time,
  has an empty expected output (of .expected_outputs of length 0 or that is None), then the
  trainer will pick the expected output of the pre-predicted data container that was fed as an input.
  
  The step with the chosen best hyperparameters will be optionnally refitted to the full
  unsplitted data (pre-split data) if desired, and will be useable using :func:`refit_best_trial`.
code: def report(self) -> RoundReport:
      dc: RoundDataclass = self.repo.load(
          ScopedLocation(
              self.project_name, self.client_name, self.round_number
          ),
          deep=True,
      )
      return RoundReport(dc)
  
imports: import gc
  from copy import copy
  from typing import ContextManager, Iterator, List, Optional, Tuple
  from neuraxle.base import CX, BaseService, BaseStep, BaseStepT, ExecutionContext, ExecutionMode, ForceHandleMixin, TruncableService, _HasChildrenMixin
  from neuraxle.data_container import ARG_X_INPUTTED, IDT
  from neuraxle.data_container import DataContainer
  from neuraxle.data_container import TrainDACT
  from neuraxle.hyperparams.space import HyperparameterSpace
  from neuraxle.metaopt.callbacks import ARG_Y_EXPECTED, ARG_Y_PREDICTD, BaseCallback, CallbackList, MetricCallback, ScoringCallback
  from neuraxle.metaopt.context import AutoMLContext
  from neuraxle.metaopt.data.aggregates import Client, Project, Root, Round, Trial, TrialSplit
  from neuraxle.metaopt.data.reporting import RoundReport
  from neuraxle.metaopt.data.vanilla import DEFAULT_CLIENT, DEFAULT_PROJECT, RoundDataclass, ScopedLocation
  from neuraxle.metaopt.optimizer import BaseHyperparameterOptimizer, GridExplorationSampler, RandomSearchSampler
  from neuraxle.metaopt.repositories.repo import HyperparamsRepository
  from neuraxle.metaopt.validation import BaseValidationSplitter, ValidationSplitter
label_desc: Use image node_id 11 for calling the ControlledAutoML obj's underlying member method code with example usage: obj.report() and returns: RoundReport