docstr: Write the probability of every choice to the logger.
  (nothing related to log-probability stuff).
  
  Parameters
  ----------
  probs
      The result of :meth:`export_probs`.
code: def log_probs(self, probs: Sample) -> None:
      """
      Write the probability of every choice to the logger.
      (nothing related to log-probability stuff).
  
      Parameters
      ----------
      probs
          The result of :meth:`export_probs`.
      """
      # Flatten the probabilities and write to all the loggers.
      # According to my test, this works better than `add_scalars` and `add_histogram`.
  
      self.log_dict(
          {
              f"prob/{label}/{value}": logit
              for label, dist in probs.items()
              for value, logit in dist.items()
          }
      )
  
imports: from __future__ import annotations
  import warnings
  from typing import Any, Iterable, List, cast, TYPE_CHECKING
  import torch.optim
  import torch.nn
  from torch.optim import Optimizer
  import nni.nas.nn.pytorch
  from nni.nas.evaluator.pytorch import LightningModule, Trainer
  from nni.mutable import Sample
  from .supermodule.base import BaseSuperNetModule
label_desc: Use image node_id 9 for calling the BaseOneShotLightningModule obj's underlying member method code with example usage: obj.log_probs(probs) without return types