| 164 | } |
| 165 | |
| 166 | void Application::InitTrain() { |
| 167 | if (config_.is_parallel) { |
| 168 | // need init network |
| 169 | Network::Init(config_); |
| 170 | Log::Info("Finished initializing network"); |
| 171 | config_.feature_fraction_seed = |
| 172 | Network::GlobalSyncUpByMin(config_.feature_fraction_seed); |
| 173 | config_.feature_fraction = |
| 174 | Network::GlobalSyncUpByMin(config_.feature_fraction); |
| 175 | config_.drop_seed = |
| 176 | Network::GlobalSyncUpByMin(config_.drop_seed); |
| 177 | } |
| 178 | |
| 179 | // create boosting |
| 180 | boosting_.reset( |
| 181 | Boosting::CreateBoosting(config_.boosting, |
| 182 | config_.input_model.c_str())); |
| 183 | // create objective function |
| 184 | objective_fun_.reset( |
| 185 | ObjectiveFunction::CreateObjectiveFunction(config_.objective, |
| 186 | config_)); |
| 187 | // load training data |
| 188 | LoadData(); |
| 189 | // initialize the objective function |
| 190 | objective_fun_->Init(train_data_->metadata(), train_data_->num_data()); |
| 191 | // initialize the boosting |
| 192 | boosting_->Init(&config_, train_data_.get(), objective_fun_.get(), |
| 193 | Common::ConstPtrInVectorWrapper<Metric>(train_metric_)); |
| 194 | // add validation data into boosting |
| 195 | for (size_t i = 0; i < valid_datas_.size(); ++i) { |
| 196 | boosting_->AddValidDataset(valid_datas_[i].get(), |
| 197 | Common::ConstPtrInVectorWrapper<Metric>(valid_metrics_[i])); |
| 198 | Log::Debug("Number of data points in validation set #%zu: %zu", i + 1, valid_datas_[i]->num_data()); |
| 199 | } |
| 200 | Log::Info("Finished initializing training"); |
| 201 | } |
| 202 | |
| 203 | void Application::Train() { |
| 204 | Log::Info("Started training..."); |