С каждым годом вижу всё больше, как программисты превращаются в некое подобие фабричных рабочих (аля оператор станка / пк / среды разработки). Заметил, что в типичном офисе программисты сидят в опенспейсе, когда как даже те же низкооплачиваемые эйчары и бухглатеры сидят в кабинетах. Потомучто они — белые ворочнички. А программисты — операторы станков. Ну это не считая IT-корпораций, конечно.
А у меня наоборот — последнии 3 года я в стартапе, до этого 5 лет в разных коммерческих компаниях. Тоже занимаюсь ML/DL/CV, но для интертеймента. Платят естественно много, даже по меркам отечественного IT. Но чувствую что занимаюсь херней и несерьезными вещами, которые помогают пользователям убивать своё время в смартфонах, бизнесу зарабатывать на них. А когда то я занимался серьезной наукой, защитил дисер. Вот сейчас пытаюсь уйти в более научную специфику, не фундаментальную науку конечно, но в какое-то RnD, где нет продакшина. Но тут выбора только один — корпорации аля сасмсунг, хуавей, нвидиа. Хотя по началу тоже не хотел и не работал в корпорациях.
Я верно понял, что процесс обучения это некая разновидность генетического алгоритма? В таком случае, такие сети будут учиться весьма долго. Простота backpropagation как раз и делает его таким эффективным. Ну я пишу это с точки зрения применения сеток в компьютерном зрении.
Помню возился с сиамскими сетями года 4 назад, как раз в задаче распознавания лиц. Результат был хуже чем с триплетами. После этого уже пошли более эффективные ArcFace и подобные методы, где дескрипторы обучают быть вписанными в гипперсферу.
Landmarks на примерах фоток некореектные — можно понять по тому, что определяется только видимый контур лица, а не реальный. Уже давно придумали 2d landmarks как проекцию 3d landmarks.
Про интерпретируемость верно подмечено. Я бы в пример привел тот же GAN. Хоть вокруг этого много хайпа (аля FaceApp со своим старением), но задачи компьютерного зрения эти модели никак не решают, т.к. остаются черным ящиком.
поддерживаю.
Помимо data scientists работающих чисто на аналитику, есть и те кто обучает серьезные модели для прода (питон тоже язык программирования, и на нем также можно серьезный код писать, особенно для ганов). Кроме того, есть и инженеры computer vision / deep learning. А есть и те кто оптимизирует модели для мобилок, там тоже своя специфеческая сфера знаний и умений.
в бытность мою аспирантом, пришлось попреподавать. Я не особо горел к этому, а воспринял как некий челенж.
Годы спустя я осознал что могу помогать менее опытным коллегам. В итоге, стал тимлидом, хотя никогда не стремился к этому целенаправленно.
я хоть убейте не понимаю, как на современных С++ 11/14/17 можно испытывать проблемы с ручным управлением памятью. Не, ну конечно можно, если захотеть, но зачем?!
А я со школы еще мечтал быть задротом и построить карьеру. Получил диплом инженера + степень к.ф.-м.н., паралелльно работал. Учёба-работа-учёба-работа-работа и так уже последние лет 15. В итоге карьера так себе, мечтал о большем. Зато знаю достаточно много людей, который либо бросили вуз, либо учились на раслабоне, а в итоге достигли в карьере того, о чём я могу только мечтать. Так что мой вывод такой — учёба важна, но она всего лишь вишенка на торте ваших талантов и способностей. Если торт так себе, то вишенка особо ничего не изменит.
Спасибо за статью! Я пользуюсь std::move, но как то всё руки не доходили использовать это для аргументов. Были мысли, что компиляторы умнее меня и можно не заморачиваться.
Во-первых, я понимаю и разделяю вашу боль с конвертацией pytorch (и аналогично MXNet) в ONNX и потом в TensorRT или ещё куда-то. Почти для каждой архитектуры сети это челенж ). И усложняет это крайне редкие обновления TensorRT.
Но вопрос в другом. Из того что вы описали, я понял что в проде вы запускаете модельки на С++? Сам я поддерживаю такой подход, но в настоящие время куча отечественных (довольно известных) и зарубежных компаний используют в проде питон код. Т.е. поднимаются докеры с питоном и там крутится инференс. И мол питон это всего лишь оркестрация, а код всёравно на куде исполняется. И вот собственно вопрос — как вы относитесь к такому подходу (питон в проде), и почему всё таки запускаете модели в проде на С++?
p.s. deep throat — глубинная глотка, deep space — глубинный космос
Видимо в остальных борятся какой-то банальной фильтрацией
Помимо data scientists работающих чисто на аналитику, есть и те кто обучает серьезные модели для прода (питон тоже язык программирования, и на нем также можно серьезный код писать, особенно для ганов). Кроме того, есть и инженеры computer vision / deep learning. А есть и те кто оптимизирует модели для мобилок, там тоже своя специфеческая сфера знаний и умений.
Годы спустя я осознал что могу помогать менее опытным коллегам. В итоге, стал тимлидом, хотя никогда не стремился к этому целенаправленно.
я и гитхаб утверждаем что он написан на С++. На Си перестали писать с opencv2 (а уже 4 версия)
Во-первых, я понимаю и разделяю вашу боль с конвертацией pytorch (и аналогично MXNet) в ONNX и потом в TensorRT или ещё куда-то. Почти для каждой архитектуры сети это челенж ). И усложняет это крайне редкие обновления TensorRT.
Но вопрос в другом. Из того что вы описали, я понял что в проде вы запускаете модельки на С++? Сам я поддерживаю такой подход, но в настоящие время куча отечественных (довольно известных) и зарубежных компаний используют в проде питон код. Т.е. поднимаются докеры с питоном и там крутится инференс. И мол питон это всего лишь оркестрация, а код всёравно на куде исполняется. И вот собственно вопрос — как вы относитесь к такому подходу (питон в проде), и почему всё таки запускаете модели в проде на С++?