code: def load(cls, fitting_id=None):
      model = super(Base, cls).load(fitting_id)
  
      if hasattr(model, "estimator"):
          # HACK to set estimator model, and model serializer
          model.estimator = model.estimator
  
          # Rely on build + load_weights rather than loading the named layers
          # w/ Keras for efficiency (and also because it causes a
          # deserialization issue) as of Keras 2.0.4:
          # https://github.com/fchollet/keras/issues/5442
          model.estimator.build()
  
          try:
              with timer("load weights %i" % model.fitting.id):
                  model.estimator.keras.load_weights(
                      model.weights_path()
                  )
          except ValueError as ex:
              if (
                  model.estimator.multi_gpu_model
                  and not lore.estimators.keras.available_gpus
              ):
                  error = "Trying to load a multi_gpu_model when no GPUs are present is not supported"
                  logger.exception(error)
                  raise NotImplementedError(error)
              else:
                  raise
  
      else:
          model.build()
          with timer("load weights"):
              model.keras.load_weights(model.weights_path())
  
      return model
  
imports: import os
  from os.path import join, dirname
  import logging
  import botocore
  import lore
  from lore.util import timer
  from lore.env import require
  import h5py
label_desc: Use image node_id 10 for calling the Base obj's underlying member method code with example usage: obj.load(cls, fitting_id) and returns: model