code: @Override protected void setupLocal(){
      assert(_localmodel == null);
      super.setupLocal();
      if (model_info().get_params()._elastic_averaging) {
        //Load my local model from DKV, to continue training
        _localmodel = DKV.getGet(_sharedmodel.localModelInfoKey(H2O.SELF));
        if (_localmodel != null) {
          if (!Arrays.equals(_localmodel.units, _sharedmodel.units)) {
            _localmodel = IcedUtils.deepCopy(_sharedmodel);
          } else {
            //Make sure that the local model has the right global (shared) parameters after checkpoint restart!
            _localmodel.set_params(_sharedmodel.get_params(), _sharedmodel._model_id);
            _localmodel.set_processed_global(_sharedmodel.get_processed_global());
          }
        }
        else {
          // first time around - use the randomized initial weights and don't spread the shared (random) model
          _localmodel = IcedUtils.deepCopy(_sharedmodel);
          _sharedmodel = null;
        }
      } else {
        _localmodel = _sharedmodel;
        _sharedmodel = null;
      }
      _localmodel.set_processed_local(0);
    }
docs: Transfer ownership from global (shared) model to local model which will be worked on