Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
d6ef6cfa
Commit
d6ef6cfa
authored
Nov 21, 2016
by
Guolin Ke
Browse files
some signed unsigned warnings fixed
parent
68f4547b
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
18 additions
and
18 deletions
+18
-18
include/LightGBM/c_api.h
include/LightGBM/c_api.h
+1
-1
include/LightGBM/utils/random.h
include/LightGBM/utils/random.h
+3
-3
src/boosting/dart.hpp
src/boosting/dart.hpp
+2
-2
src/c_api.cpp
src/c_api.cpp
+4
-4
src/io/dataset_loader.cpp
src/io/dataset_loader.cpp
+4
-4
src/metric/dcg_calculator.cpp
src/metric/dcg_calculator.cpp
+2
-2
src/treelearner/serial_tree_learner.cpp
src/treelearner/serial_tree_learner.cpp
+2
-2
No files found.
include/LightGBM/c_api.h
View file @
d6ef6cfa
...
@@ -411,7 +411,7 @@ ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indi
...
@@ -411,7 +411,7 @@ ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indi
const
void
*
data
,
int
data_type
,
int64_t
ncol_ptr
,
int64_t
nelem
);
const
void
*
data
,
int
data_type
,
int64_t
ncol_ptr
,
int64_t
nelem
);
std
::
vector
<
double
>
std
::
vector
<
double
>
SampleFromOneColumn
(
const
std
::
vector
<
std
::
pair
<
int
,
double
>>&
data
,
const
std
::
vector
<
size_
t
>&
indices
);
SampleFromOneColumn
(
const
std
::
vector
<
std
::
pair
<
int
,
double
>>&
data
,
const
std
::
vector
<
in
t
>&
indices
);
// exception handle and error msg
// exception handle and error msg
...
...
include/LightGBM/utils/random.h
View file @
d6ef6cfa
...
@@ -52,12 +52,12 @@ public:
...
@@ -52,12 +52,12 @@ public:
* \param K
* \param K
* \return K Ordered sampled data from {0,1,...,N-1}
* \return K Ordered sampled data from {0,1,...,N-1}
*/
*/
inline
std
::
vector
<
size_
t
>
Sample
(
size_t
N
,
size_
t
K
)
{
inline
std
::
vector
<
in
t
>
Sample
(
int
N
,
in
t
K
)
{
std
::
vector
<
size_
t
>
ret
;
std
::
vector
<
in
t
>
ret
;
if
(
K
>
N
||
K
<
0
)
{
if
(
K
>
N
||
K
<
0
)
{
return
ret
;
return
ret
;
}
}
for
(
size_
t
i
=
0
;
i
<
N
;
++
i
)
{
for
(
in
t
i
=
0
;
i
<
N
;
++
i
)
{
double
prob
=
(
K
-
ret
.
size
())
/
static_cast
<
double
>
(
N
-
i
);
double
prob
=
(
K
-
ret
.
size
())
/
static_cast
<
double
>
(
N
-
i
);
if
(
NextDouble
()
<
prob
)
{
if
(
NextDouble
()
<
prob
)
{
ret
.
push_back
(
i
);
ret
.
push_back
(
i
);
...
...
src/boosting/dart.hpp
View file @
d6ef6cfa
...
@@ -88,7 +88,7 @@ private:
...
@@ -88,7 +88,7 @@ private:
// select dropping tree indexes based on drop_rate
// select dropping tree indexes based on drop_rate
// if drop rate is too small, skip this step, drop one tree randomly
// if drop rate is too small, skip this step, drop one tree randomly
if
(
drop_rate_
>
kEpsilon
)
{
if
(
drop_rate_
>
kEpsilon
)
{
for
(
size_
t
i
=
0
;
i
<
static_cast
<
size_t
>
(
iter_
)
;
++
i
)
{
for
(
in
t
i
=
0
;
i
<
iter_
;
++
i
)
{
if
(
random_for_drop_
.
NextDouble
()
<
drop_rate_
)
{
if
(
random_for_drop_
.
NextDouble
()
<
drop_rate_
)
{
drop_index_
.
push_back
(
i
);
drop_index_
.
push_back
(
i
);
}
}
...
@@ -128,7 +128,7 @@ private:
...
@@ -128,7 +128,7 @@ private:
}
}
}
}
/*! \brief The indexes of dropping trees */
/*! \brief The indexes of dropping trees */
std
::
vector
<
size_
t
>
drop_index_
;
std
::
vector
<
in
t
>
drop_index_
;
/*! \brief Dropping rate */
/*! \brief Dropping rate */
double
drop_rate_
;
double
drop_rate_
;
/*! \brief Random generator, used to select dropping trees */
/*! \brief Random generator, used to select dropping trees */
...
...
src/c_api.cpp
View file @
d6ef6cfa
...
@@ -199,7 +199,7 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data,
...
@@ -199,7 +199,7 @@ DllExport int LGBM_CreateDatasetFromMat(const void* data,
if
(
reference
==
nullptr
)
{
if
(
reference
==
nullptr
)
{
// sample data first
// sample data first
Random
rand
(
config
.
io_config
.
data_random_seed
);
Random
rand
(
config
.
io_config
.
data_random_seed
);
const
size_
t
sample_cnt
=
static_cast
<
size_
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
const
in
t
sample_cnt
=
static_cast
<
in
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
std
::
vector
<
std
::
vector
<
double
>>
sample_values
(
ncol
);
std
::
vector
<
std
::
vector
<
double
>>
sample_values
(
ncol
);
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
...
@@ -251,7 +251,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const void* indptr,
...
@@ -251,7 +251,7 @@ DllExport int LGBM_CreateDatasetFromCSR(const void* indptr,
if
(
reference
==
nullptr
)
{
if
(
reference
==
nullptr
)
{
// sample data first
// sample data first
Random
rand
(
config
.
io_config
.
data_random_seed
);
Random
rand
(
config
.
io_config
.
data_random_seed
);
const
size_
t
sample_cnt
=
static_cast
<
size_
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
const
in
t
sample_cnt
=
static_cast
<
in
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
std
::
vector
<
std
::
vector
<
double
>>
sample_values
;
std
::
vector
<
std
::
vector
<
double
>>
sample_values
;
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
...
@@ -313,7 +313,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const void* col_ptr,
...
@@ -313,7 +313,7 @@ DllExport int LGBM_CreateDatasetFromCSC(const void* col_ptr,
Log
::
Warning
(
"Construct from CSC format is not efficient"
);
Log
::
Warning
(
"Construct from CSC format is not efficient"
);
// sample data first
// sample data first
Random
rand
(
config
.
io_config
.
data_random_seed
);
Random
rand
(
config
.
io_config
.
data_random_seed
);
const
size_
t
sample_cnt
=
static_cast
<
size_
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
const
in
t
sample_cnt
=
static_cast
<
in
t
>
(
nrow
<
config
.
io_config
.
bin_construct_sample_cnt
?
nrow
:
config
.
io_config
.
bin_construct_sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
auto
sample_indices
=
rand
.
Sample
(
nrow
,
sample_cnt
);
std
::
vector
<
std
::
vector
<
double
>>
sample_values
(
ncol_ptr
-
1
);
std
::
vector
<
std
::
vector
<
double
>>
sample_values
(
ncol_ptr
-
1
);
#pragma omp parallel for schedule(guided)
#pragma omp parallel for schedule(guided)
...
@@ -762,7 +762,7 @@ ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indi
...
@@ -762,7 +762,7 @@ ColumnFunctionFromCSC(const void* col_ptr, int col_ptr_type, const int32_t* indi
throw
std
::
runtime_error
(
"unknown data type in ColumnFunctionFromCSC"
);
throw
std
::
runtime_error
(
"unknown data type in ColumnFunctionFromCSC"
);
}
}
std
::
vector
<
double
>
SampleFromOneColumn
(
const
std
::
vector
<
std
::
pair
<
int
,
double
>>&
data
,
const
std
::
vector
<
size_
t
>&
indices
)
{
std
::
vector
<
double
>
SampleFromOneColumn
(
const
std
::
vector
<
std
::
pair
<
int
,
double
>>&
data
,
const
std
::
vector
<
in
t
>&
indices
)
{
size_t
j
=
0
;
size_t
j
=
0
;
std
::
vector
<
double
>
ret
;
std
::
vector
<
double
>
ret
;
for
(
auto
row_idx
:
indices
)
{
for
(
auto
row_idx
:
indices
)
{
...
...
src/io/dataset_loader.cpp
View file @
d6ef6cfa
...
@@ -512,11 +512,11 @@ std::vector<std::string> DatasetLoader::LoadTextDataToMemory(const char* filenam
...
@@ -512,11 +512,11 @@ std::vector<std::string> DatasetLoader::LoadTextDataToMemory(const char* filenam
}
}
std
::
vector
<
std
::
string
>
DatasetLoader
::
SampleTextDataFromMemory
(
const
std
::
vector
<
std
::
string
>&
data
)
{
std
::
vector
<
std
::
string
>
DatasetLoader
::
SampleTextDataFromMemory
(
const
std
::
vector
<
std
::
string
>&
data
)
{
size_
t
sample_cnt
=
static_cast
<
size_t
>
(
io_config_
.
bin_construct_sample_cnt
)
;
in
t
sample_cnt
=
io_config_
.
bin_construct_sample_cnt
;
if
(
sample_cnt
>
data
.
size
())
{
if
(
static_cast
<
size_t
>
(
sample_cnt
)
>
data
.
size
())
{
sample_cnt
=
data
.
size
();
sample_cnt
=
static_cast
<
int
>
(
data
.
size
()
)
;
}
}
std
::
vector
<
size_t
>
sample_indices
=
random_
.
Sample
(
data
.
size
(),
sample_cnt
);
auto
sample_indices
=
random_
.
Sample
(
static_cast
<
int
>
(
data
.
size
()
)
,
sample_cnt
);
std
::
vector
<
std
::
string
>
out
(
sample_indices
.
size
());
std
::
vector
<
std
::
string
>
out
(
sample_indices
.
size
());
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
sample_indices
.
size
();
++
i
)
{
const
size_t
idx
=
sample_indices
[
i
];
const
size_t
idx
=
sample_indices
[
i
];
...
...
src/metric/dcg_calculator.cpp
View file @
d6ef6cfa
...
@@ -38,7 +38,7 @@ score_t DCGCalculator::CalMaxDCGAtK(data_size_t k, const float* label, data_size
...
@@ -38,7 +38,7 @@ score_t DCGCalculator::CalMaxDCGAtK(data_size_t k, const float* label, data_size
for
(
data_size_t
i
=
0
;
i
<
num_data
;
++
i
)
{
for
(
data_size_t
i
=
0
;
i
<
num_data
;
++
i
)
{
++
label_cnt
[
static_cast
<
int
>
(
label
[
i
])];
++
label_cnt
[
static_cast
<
int
>
(
label
[
i
])];
}
}
size_
t
top_label
=
label_gain_
.
size
()
-
1
;
in
t
top_label
=
static_cast
<
int
>
(
label_gain_
.
size
()
)
-
1
;
if
(
k
>
num_data
)
{
k
=
num_data
;
}
if
(
k
>
num_data
)
{
k
=
num_data
;
}
// start from top label, and accumulate DCG
// start from top label, and accumulate DCG
...
@@ -67,7 +67,7 @@ void DCGCalculator::CalMaxDCG(const std::vector<data_size_t>& ks,
...
@@ -67,7 +67,7 @@ void DCGCalculator::CalMaxDCG(const std::vector<data_size_t>& ks,
}
}
score_t
cur_result
=
0.0
f
;
score_t
cur_result
=
0.0
f
;
data_size_t
cur_left
=
0
;
data_size_t
cur_left
=
0
;
size_
t
top_label
=
label_gain_
.
size
()
-
1
;
in
t
top_label
=
static_cast
<
int
>
(
label_gain_
.
size
()
)
-
1
;
// calculate k Max DCG by one pass
// calculate k Max DCG by one pass
for
(
size_t
i
=
0
;
i
<
ks
.
size
();
++
i
)
{
for
(
size_t
i
=
0
;
i
<
ks
.
size
();
++
i
)
{
data_size_t
cur_k
=
ks
[
i
];
data_size_t
cur_k
=
ks
[
i
];
...
...
src/treelearner/serial_tree_learner.cpp
View file @
d6ef6cfa
...
@@ -141,8 +141,8 @@ void SerialTreeLearner::BeforeTrain() {
...
@@ -141,8 +141,8 @@ void SerialTreeLearner::BeforeTrain() {
is_feature_used_
[
i
]
=
false
;
is_feature_used_
[
i
]
=
false
;
}
}
// Get used feature at current tree
// Get used feature at current tree
size_
t
used_feature_cnt
=
static_cast
<
size_
t
>
(
num_features_
*
feature_fraction_
);
in
t
used_feature_cnt
=
static_cast
<
in
t
>
(
num_features_
*
feature_fraction_
);
std
::
vector
<
size_t
>
used_feature_indices
=
random_
.
Sample
(
num_features_
,
used_feature_cnt
);
auto
used_feature_indices
=
random_
.
Sample
(
num_features_
,
used_feature_cnt
);
for
(
auto
idx
:
used_feature_indices
)
{
for
(
auto
idx
:
used_feature_indices
)
{
is_feature_used_
[
idx
]
=
true
;
is_feature_used_
[
idx
]
=
true
;
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment