Comments 5
В этой задаче обучение на GPU давало результат сильно хуже, чем на CPU.Извините за нубский вопрос, но почему так происходит? Какая разница между вычислениями на GPU и CPU, кроме скорости? Округления?
Вот описание всех параметров катбуста. В правой колонке указано, применим ли параметр только к
CPU, только к GPU или к обоим. Можно быстро прогартать и посмотреть, что достаточно много параметров применимы только к CPU.
В нашем случае я настраивал random_strength и model_size_reg, которые можно настраивать только для CPU. Но на самом деле даже при одинаковых параметрах девайсы ведут себя по разному. Дело в том, что все численные признаки, в том числе полученные из категориальных, катбуст бинаризует на разное количество bin-ов.
Параметр border_count:
CPU — от 1 до 65535 бинов. 254 по умолчанию.
GPU — от 1 до 255 бинов. 128 по умолчанию.
И я думаю, что есть ещё какие-то нюансы, которые я не учёл.
CPU, только к GPU или к обоим. Можно быстро прогартать и посмотреть, что достаточно много параметров применимы только к CPU.
В нашем случае я настраивал random_strength и model_size_reg, которые можно настраивать только для CPU. Но на самом деле даже при одинаковых параметрах девайсы ведут себя по разному. Дело в том, что все численные признаки, в том числе полученные из категориальных, катбуст бинаризует на разное количество bin-ов.
Параметр border_count:
CPU — от 1 до 65535 бинов. 254 по умолчанию.
GPU — от 1 до 255 бинов. 128 по умолчанию.
И я думаю, что есть ещё какие-то нюансы, которые я не учёл.
Я не настоящий сварщик, но вроде бы так — в GPU изначально продвинутое произведение матриц (это требуется игровым движкам).
Все задачи из ML и NN — чаще всего можно и нужно векторизировать — то есть вместо циклов делать умножение матриц. Поэтому и так востребованы именно GPU вычисления.
Я могу быть неправ (!), учтите это (-:
Все задачи из ML и NN — чаще всего можно и нужно векторизировать — то есть вместо циклов делать умножение матриц. Поэтому и так востребованы именно GPU вычисления.
Я могу быть неправ (!), учтите это (-:
CPU — последовательная обработка данных
GPU- параллельная обработка данных
Так как обучение — это подгонка результата под некоторый критерий, то разница в обучении на CPU и GPU возможна из-за разной эффективности такой подгонки, т е либо худшего алгоритма, либо более низкой производительности или точности вычислений.
GPU- параллельная обработка данных
Так как обучение — это подгонка результата под некоторый критерий, то разница в обучении на CPU и GPU возможна из-за разной эффективности такой подгонки, т е либо худшего алгоритма, либо более низкой производительности или точности вычислений.
Sign up to leave a comment.
Как я решал соревнование по машинному обучению data-like