タグ

ブックマーク / qiita.com/tetsuro731 (1)

  • LightGBMをGPUで回すと結果の再現性が得られない - Qiita

    概要 タイトルの通りなのだが、LightGBMGPUで回すと結果の再現性が得られないことに気づいた。 CPUの場合は乱数seedを42などに固定すれば、同じ条件で何回回しても毎回同じ結果が得られる。 しかし、GPUの場合は乱数seedを固定しても回すたびに結果が変わってしまうのだ。 なぜ再現性がないのか? この問題はLightGBMの公式のissueでも議論されている。 まず、GPUを使う場合は並列で計算できる部分は並列処理をすることで効率化している。 さらに、並列化した結果を足し算するときに、順番によって微妙に値が変わってしまうということだ。 もちろん数学的には足し算の順番が変わっても結果が変わることなんてないんだけど、コンピュータでfloatなどの値を計算する以上、丸め誤差だったり複数の要因で結果が「ほんのわずかに」違うということが起きうる。 さらに、LightGBMGPUで回した

    LightGBMをGPUで回すと結果の再現性が得られない - Qiita
  • 1