class_docstr: Logs the training of components.
class_docstr_tok: ["Logs","the","training","of","components","."]
docstr: Logs the training start of a graph node.
docstr_tok: ["Logs","the","training","start","of","a","graph","node","."]
code: def on_before_node(
      self,
      node_name: Text,
      execution_context: ExecutionContext,
      config: Dict[Text, Any],
      received_inputs: Dict[Text, Any],
  ) -> Dict:
      """Logs the training start of a graph node."""
      node = self._pruned_schema.nodes[node_name]
  
      if not self._is_cached_node(node) and self._does_node_train(node):
          logger.info(
              f"Starting to train component '{node.uses.__name__}'."
          )
  
      return {}
  
imports: import logging
  from typing import Any, Dict, Text, Type
  from rasa.engine.caching import TrainingCache
  from rasa.engine.graph import ExecutionContext, GraphNodeHook, GraphSchema, SchemaNode
  from rasa.engine.storage.storage import ModelStorage
  from rasa.engine.training.components import PrecomputedValueProvider
  import rasa.shared.utils.io
  from rasa.engine.training import fingerprinting
label_desc: Use image node_id 2 for calling the LoggingHook obj's underlying member method code with example usage: obj.on_before_node(node_name, execution_context, config, received_inputs) and returns: dict