Как стать автором
Обновить

Комментарии 5

Про TVector хочется замолвить словечко — это плохая практика, наследоваться от стандартных контейнеров ввиду отсутствия у оных виртуальных деструкторов (и еще пары причин). Не болит?
Невиртуальный деструктор не обязательно означает, что класс не может быть использован в качестве базового. Это лишь означает, что удаление объекта производного класса через указатель на базовый не будет работать. Мне сложно представить, что в идиоматичном С++17 кто-то будет делать delete именно указателям на вектора. Надо убедиться, что этого нет, и тогда наследование не будет беспокоить. Для кода, который пишут вновь, это возможно сделать. А профит от наследования от вектора хорош — 1) добавленные плюшки в коде очень компактны (не надо по-новой ваять весь интерфейс вектора в своём классе), 2) все, кто принимает вектора или их итераторы, продолжат работать с инстансами и вашего класса. В своём коде сам делаю как Яндекс и очень доволен.

Это все, конечно, хорошо, catboost действительно классная библиотека — но когда вы сделаете standalone evaluator для C++ с поддержкой мультикласса и категориальных фичей?
На реквест подобной функциональности был получен ответ "мы сделали экспорт в json, радуйтесь хоть этому".
В итоге пришлось реверс-инженерить ваш формат (который, кстати, был неверно описан в вашем же туториале — layout листьев на деле не такой как описано) и писать инференс самому. В конце концов пришли к выводу что легче просто отказаться от катбуста, несмотря на все его достоинства.


p.s. — про билд систему которая скачивает какой-то бинарь с удаленного сервера и запускает его я пожалуй даже напоминать не буду.

Привет! А что понимается по standalone применением? Есть makefile сборка статической и динамической библиотеки с C API, этот интерфейс поддерживает катфичи и мультикласс, есть c#, java & rust обертки над этой библиотекой, и наконец для экзотических потребностей есть экспорт моделей в python код с поддержкой катфичей.

Типа такого, но чтобы умел катфичи, мультикласс и собираться под ARMv7.
Способов подсунуть свой тулчейн вашим мейкфайлам я не нашел (возможно плохо искал, но когда я смотрел они не обращали внимания ни на CC ни на CXX), а внимательно изучать 5мб автогенерированного мейка не очень хочется.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий