code: @Override
    protected void postGlobal() {
      assert(_res.model_info().get_params()._replicate_training_data);
      super.postGlobal();
      // model averaging (DeepLearningTask only computed the per-node models, each on all the data)
      _res.model_info().div(_res._chunk_node_count);
      _res.model_info().add_processed_global(_res.model_info().get_processed_local()); //switch from local counters to global counters
      _res.model_info().set_processed_local(0l);
      DeepLearningModelInfo nodeAverageModel = _res.model_info();
      if (nodeAverageModel.get_params()._elastic_averaging)
        _sharedmodel = DeepLearningModelInfo.timeAverage(nodeAverageModel);
      else
        _sharedmodel = nodeAverageModel;
    }
docs: Finish up the work after all nodes have reduced their models via the above reduce() method.
  All we do is average the models and add to the global training sample counter.
  After this returns, model_info() can be queried for the updated model.