Unverified Commit 99cc4f2f authored by Nikita Titov's avatar Nikita Titov Committed by GitHub
Browse files

[python] Use double type for `init_score` array when set by predictor (#4510)

parent c6199311
...@@ -1394,7 +1394,7 @@ class Dataset: ...@@ -1394,7 +1394,7 @@ class Dataset:
if used_indices is not None: if used_indices is not None:
assert not self.need_slice assert not self.need_slice
if isinstance(data, (str, Path)): if isinstance(data, (str, Path)):
sub_init_score = np.empty(num_data * predictor.num_class, dtype=np.float32) sub_init_score = np.empty(num_data * predictor.num_class, dtype=np.float64)
assert num_data == len(used_indices) assert num_data == len(used_indices)
for i in range(len(used_indices)): for i in range(len(used_indices)):
for j in range(predictor.num_class): for j in range(predictor.num_class):
...@@ -1402,13 +1402,13 @@ class Dataset: ...@@ -1402,13 +1402,13 @@ class Dataset:
init_score = sub_init_score init_score = sub_init_score
if predictor.num_class > 1: if predictor.num_class > 1:
# need to regroup init_score # need to regroup init_score
new_init_score = np.empty(init_score.size, dtype=np.float32) new_init_score = np.empty(init_score.size, dtype=np.float64)
for i in range(num_data): for i in range(num_data):
for j in range(predictor.num_class): for j in range(predictor.num_class):
new_init_score[j * num_data + i] = init_score[i * predictor.num_class + j] new_init_score[j * num_data + i] = init_score[i * predictor.num_class + j]
init_score = new_init_score init_score = new_init_score
elif self.init_score is not None: elif self.init_score is not None:
init_score = np.zeros(self.init_score.shape, dtype=np.float32) init_score = np.zeros(self.init_score.shape, dtype=np.float64)
else: else:
return self return self
self.set_init_score(init_score) self.set_init_score(init_score)
......
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