| 111 | } |
| 112 | |
| 113 | void SerialTreeLearner::ResetTrainingData(const Dataset* train_data) { |
| 114 | train_data_ = train_data; |
| 115 | num_data_ = train_data_->num_data(); |
| 116 | CHECK(num_features_ == train_data_->num_features()); |
| 117 | |
| 118 | // get ordered bin |
| 119 | train_data_->CreateOrderedBins(&ordered_bins_); |
| 120 | |
| 121 | // initialize splits for leaf |
| 122 | smaller_leaf_splits_->ResetNumData(num_data_); |
| 123 | larger_leaf_splits_->ResetNumData(num_data_); |
| 124 | |
| 125 | // initialize data partition |
| 126 | data_partition_->ResetNumData(num_data_); |
| 127 | |
| 128 | // initialize ordered gradients and hessians |
| 129 | ordered_gradients_.resize(num_data_); |
| 130 | ordered_hessians_.resize(num_data_); |
| 131 | // if has ordered bin, need to allocate a buffer to fast split |
| 132 | if (has_ordered_bin_) { |
| 133 | is_data_in_leaf_.resize(num_data_); |
| 134 | std::fill(is_data_in_leaf_.begin(), is_data_in_leaf_.end(), static_cast<char>(0)); |
| 135 | } |
| 136 | if (cegb_ != nullptr) { |
| 137 | cegb_->Init(); |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | void SerialTreeLearner::ResetConfig(const Config* config) { |
| 142 | if (config_->num_leaves != config->num_leaves) { |
nothing calls this directly
no test coverage detected