/** * 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. */ @Override protected void postGlobal() { assert(_res.model_info().get_params()._replicate_training_data); super.postGlobal(); // model averaging (DeepWaterTask 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); _sharedmodel = _res.model_info(); } }
/** * 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. */ @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; } }
/** * 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. */ @Override protected void postGlobal() { assert(_res.model_info().get_params()._replicate_training_data); super.postGlobal(); // model averaging (DeepWaterTask 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); _sharedmodel = _res.model_info(); } }
/** * 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. */ @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; } }