Unverified Commit d0d70716 authored by CVPaul's avatar CVPaul Committed by GitHub
Browse files

Fix calculation of number of bins in FindGroup (#6019)

* solve 'bin size 257 cannot run on GPU #3339'

https://github.com/microsoft/LightGBM/issues/3339#issuecomment-1665131743



* fix  typo LeafIndex -> leaf_index

---------
Co-authored-by: default avatarshiyu1994 <shiyu_k1994@qq.com>
Co-authored-by: default avatarJames Lamb <jaylamb20@gmail.com>
parent 45a60a72
......@@ -131,7 +131,7 @@ std::vector<std::vector<int>> FindGroups(
std::vector<int> available_groups;
for (int gid = 0; gid < static_cast<int>(features_in_group.size()); ++gid) {
auto cur_num_bin = group_num_bin[gid] + bin_mappers[fidx]->num_bin() +
(bin_mappers[fidx]->GetDefaultBin() == 0 ? -1 : 0);
(bin_mappers[fidx]->GetMostFreqBin() == 0 ? -1 : 0);
if (group_total_data_cnt[gid] + cur_non_zero_cnt <=
total_sample_cnt + single_val_max_conflict_cnt) {
if (!is_use_gpu || cur_num_bin <= max_bin_per_group) {
......@@ -189,7 +189,7 @@ std::vector<std::vector<int>> FindGroups(
group_used_row_cnt.emplace_back(cur_non_zero_cnt);
group_num_bin.push_back(
1 + bin_mappers[fidx]->num_bin() +
(bin_mappers[fidx]->GetDefaultBin() == 0 ? -1 : 0));
(bin_mappers[fidx]->GetMostFreqBin() == 0 ? -1 : 0));
}
}
if (!is_sparse) {
......
......@@ -1089,7 +1089,7 @@ void GPUTreeLearner::FindBestSplits(const Tree* tree) {
size_t bin_size = train_data_->FeatureNumBin(feature_index) + 1;
printf("Feature %d smaller leaf:\n", feature_index);
PrintHistograms(smaller_leaf_histogram_array_[feature_index].RawData() - kHistOffset, bin_size);
if (larger_leaf_splits_ == nullptr || larger_leaf_splits_->LeafIndex() < 0) { continue; }
if (larger_leaf_splits_ == nullptr || larger_leaf_splits_->leaf_index() < 0) { continue; }
printf("Feature %d larger leaf:\n", feature_index);
PrintHistograms(larger_leaf_histogram_array_[feature_index].RawData() - kHistOffset, bin_size);
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment