class_docstr: asr keras base solver
class_docstr_tok: ["asr","keras","base","solver"]
docstr: main entrypoint to build model 
docstr_tok: ["main","entrypoint","to","build","model"]
code: def build(self, multi_gpu=False):
      """main entrypoint to build model"""
      assert self.model
  
      loss = self.get_loss()
      optimizer = self.get_optimizer()
  
      run_opts, run_metas = self.get_run_opts_metas()
  
      # compile model
      if self.ngpu > 1 and multi_gpu:
          self._parallel_model = multi_gpu_model(
              self.model,
              gpus=self.ngpu,
              cpu_relocation=False,
              cpu_merge=False,
          )
          self.parallel_model.compile(
              loss=loss,
              optimizer=optimizer,
              metrics=self._metrics_used,
              options=run_opts,
              run_metadata=run_metas,
          )
      else:
          self.model.compile(
              loss=loss,
              optimizer=optimizer,
              metrics=self._metrics_used,
              options=run_opts,
              run_metadata=run_metas,
          )
  
      # Print model summary
      if self.model.built and self.model._is_graph_network:
          self.model.summary()
      self._built = True
  
imports: from pathlib import Path
  from absl import logging
  import delta.compat
  from tensorflow.keras.utils import multi_gpu_model
  from tensorflow.keras.callbacks import EarlyStopping
  from tensorflow.keras.callbacks import TensorBoard
  from tensorflow.keras.callbacks import CSVLogger
  from tensorflow.keras.callbacks import ReduceLROnPlateau
  from delta import utils
  from delta.utils.solver.utils import solver_utils
  from delta.utils.solver.base_solver import Solver
  from delta.utils.solver.utils.callbacks import ParallelModelCheckpoint
  from delta.utils.register import registers
label_desc: Use image node_id 9 for calling the KerasBaseSolver obj's underlying member method code with example usage: obj.build(multi_gpu) without return types