#programming #dry #solid
Изучаю код сторонних библиотек, дабы прокачать свой уровень. Код поражает красотой и эффективностью.
Изучаю код сторонних библиотек, дабы прокачать свой уровень. Код поражает красотой и эффективностью.
😁1
#programming #ml #codequality
Вообще вот моё краткое заключение по ведущим питоновским ML библам для explainability (Shape) и feature selection (BorutaPy, BorutaShap): код оставляет желать лучшего, нечитаем, неоптимален, иногда и вообще с ошибками, автор не понимает, что и зачем делает. Для принятия решений используются устаревшие статметоды (спасибо, что поправки Бонферрони есть, но могли бы и иерархический Байес завезти). А ведь это лучшее, что есть. А вы чем пользуетесь?
Вообще вот моё краткое заключение по ведущим питоновским ML библам для explainability (Shape) и feature selection (BorutaPy, BorutaShap): код оставляет желать лучшего, нечитаем, неоптимален, иногда и вообще с ошибками, автор не понимает, что и зачем делает. Для принятия решений используются устаревшие статметоды (спасибо, что поправки Бонферрони есть, но могли бы и иерархический Байес завезти). А ведь это лучшее, что есть. А вы чем пользуетесь?
😢4👎1
#cuda #gpu #architecture #programming
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
Напоминалка, как устроена программная модель Cuda. Что такое потоки, блоки, сетки.
https://developer.nvidia.com/blog/cuda-refresher-cuda-programming-model/
NVIDIA Technical Blog
CUDA Refresher: The CUDA Programming Model
This is the fourth post in the CUDA Refresher series, which has the goal of refreshing key concepts in CUDA, tools, and optimization for beginning or intermediate developers.
#programming #perfection #decisionmaking
Бывает, хочешь закодить всё грамотно, сразу с учётом будущего роста функциональности, продумываешь архитектуру, варианты использования решения, но проект затягивается, накапливается усталость, теряется интерес. В таких случаях, как обнаружил по своему опыту, лучше отложить попытки улучшательства на будущее и вывести в бой хотя бы минимально рабочую версию, которая уже будет решать бизнес-задачу лучше, чем решалось до неё.
Так у меня было с ансамблированием в самописной системе mlops: я добавил простые ансамбли, стал добавлять стэкинг, там возникли сложности с оверфитом, я увидел, что процесс затягивается, ну и зарелизил хотя бы простые ансамбли. И вот уже полгода пользуюсь, и это приносит пользу. А иначе бы застрял неизвестно насколько.
Так и сейчас с отборщиком признаков, Диогеном. Модуль wrappers потребовал решать задачу одномерной целочисленной оптимизации, я сначала потестил распространённые пакеты типа optuna/skopt/hyperopt, потом написал свой модуль с реализациями гауссова процесса и прям совсем своей идеей, квантильной регрессией+эвристиками. И вот уже 2 месяца я туплю с этим модулем. Работает он по виду хорошо, но до тестирования и уж тем более до реального внедрения никак не доведу.
И вот смотрю я на свои задачи по этому модулю: то мне статические графики не нравятся в matplotlib и я хочу пределать в живые plotly, то мне не нравится, что оптимизатор не поддерживает категориальные входы и вообще множественные входы, и я хочу переделать структуры данных. То я придрался, что сортировки там неоптимальны, хотя по итогам профилирования они ни на что не влияют. А так как в планах создание своего полноценного оптимизатора гиперпараметров, однобокость текущей версии вносит когнитивынй диссонанс и не позволяет продвигаться работе - думаю над оптимальным способом унификации и прочими философскими вещами, в то время как у меня есть прямо сейчас реальные ML проекты, которым очень нужен хороший feature selector.
Ну и вот сегодня додумался, это же как раз тот случай, когда надо выводить в бой уже написанное решение, и не тупить над бесконечными улучшениями ) Завидую я, в общем, программистам, которые с лёгким сердцем особо не думая могут херак, херак, и в production. Так что не затягивайте проекты, релизьте вовремя.
Бывает, хочешь закодить всё грамотно, сразу с учётом будущего роста функциональности, продумываешь архитектуру, варианты использования решения, но проект затягивается, накапливается усталость, теряется интерес. В таких случаях, как обнаружил по своему опыту, лучше отложить попытки улучшательства на будущее и вывести в бой хотя бы минимально рабочую версию, которая уже будет решать бизнес-задачу лучше, чем решалось до неё.
Так у меня было с ансамблированием в самописной системе mlops: я добавил простые ансамбли, стал добавлять стэкинг, там возникли сложности с оверфитом, я увидел, что процесс затягивается, ну и зарелизил хотя бы простые ансамбли. И вот уже полгода пользуюсь, и это приносит пользу. А иначе бы застрял неизвестно насколько.
Так и сейчас с отборщиком признаков, Диогеном. Модуль wrappers потребовал решать задачу одномерной целочисленной оптимизации, я сначала потестил распространённые пакеты типа optuna/skopt/hyperopt, потом написал свой модуль с реализациями гауссова процесса и прям совсем своей идеей, квантильной регрессией+эвристиками. И вот уже 2 месяца я туплю с этим модулем. Работает он по виду хорошо, но до тестирования и уж тем более до реального внедрения никак не доведу.
И вот смотрю я на свои задачи по этому модулю: то мне статические графики не нравятся в matplotlib и я хочу пределать в живые plotly, то мне не нравится, что оптимизатор не поддерживает категориальные входы и вообще множественные входы, и я хочу переделать структуры данных. То я придрался, что сортировки там неоптимальны, хотя по итогам профилирования они ни на что не влияют. А так как в планах создание своего полноценного оптимизатора гиперпараметров, однобокость текущей версии вносит когнитивынй диссонанс и не позволяет продвигаться работе - думаю над оптимальным способом унификации и прочими философскими вещами, в то время как у меня есть прямо сейчас реальные ML проекты, которым очень нужен хороший feature selector.
Ну и вот сегодня додумался, это же как раз тот случай, когда надо выводить в бой уже написанное решение, и не тупить над бесконечными улучшениями ) Завидую я, в общем, программистам, которые с лёгким сердцем особо не думая могут херак, херак, и в production. Так что не затягивайте проекты, релизьте вовремя.
👍1
#fun #music #rammstein #programming
Что общего у Тилля с программированием?
https://www.youtube.com/watch?v=m1Gl1CeEQKY
Что общего у Тилля с программированием?
https://www.youtube.com/watch?v=m1Gl1CeEQKY
🔥1