🖼 Giphy Engineering 👾
Неожиданно обнаружил для себя что у известного сервиса giphy по поиску гифок, есть очень интересный блог про машинное обучение и инженерию на картинках.
Статьи действительно интересные и в них много гифок :)
https://engineering.giphy.com
Неожиданно обнаружил для себя что у известного сервиса giphy по поиску гифок, есть очень интересный блог про машинное обучение и инженерию на картинках.
Статьи действительно интересные и в них много гифок :)
https://engineering.giphy.com
🐰 Зай, тут для тебя новый видос 🎬
Привет, я тут снял видеоролик с генерацией новостей артемия лебедева.
Теперь можно создавать свои альтернативные самые честные новости.
Как говорится, лайк и шер.
https://www.youtube.com/watch?v=hckrREWgjQ4
Привет, я тут снял видеоролик с генерацией новостей артемия лебедева.
Теперь можно создавать свои альтернативные самые честные новости.
Как говорится, лайк и шер.
https://www.youtube.com/watch?v=hckrREWgjQ4
YouTube
ЛЕБЕДЕВ - НЕЙРОСЕТЬ? | Большой заговор масонов и Била Гейтса
Видео сгенерировано с помощью нейронных сетей, распространите его, чтобы оно попало в новости к Артемию!
Контакты автора:
Instagram: https://www.instagram.com/alxmamaev/
Telegram: https://news.1rj.ru/str/stackmorelayers
В создании видео помогали:
Монтаж и motion…
Контакты автора:
Instagram: https://www.instagram.com/alxmamaev/
Telegram: https://news.1rj.ru/str/stackmorelayers
В создании видео помогали:
Монтаж и motion…
😦 Если вы используете Numpy + Pytorch, скорее всего у вас есть этот баг 😱
Нашёл публикацию в блоге NVidia, про то, как легко и ненавязчиво можно угодить в когти не честного рандома.
Суть бага заключается в следующем. Если использовать np.rand и (ему подобные) внутри Pytorch Dataset, то в случае использования multiprocessing, мы получим неожиданный результат.
Каждый независимый воркер будет генерировать случайные числа идентичные случайным числам других воркеров 🤷♂️
Казалось бы, ну и что? А дело в том, что вы теряете буст от мультипроцессинга для аугментаций и гоняете одни и те же батчи данных по несколько раз.
И этому багу подвержены множество популярных проектов на Pytorch.
Подробнее прочитать можно тут:
https://tanelp.github.io/posts/a-bug-that-plagues-thousands-of-open-source-ml-projects/
Нашёл публикацию в блоге NVidia, про то, как легко и ненавязчиво можно угодить в когти не честного рандома.
Суть бага заключается в следующем. Если использовать np.rand и (ему подобные) внутри Pytorch Dataset, то в случае использования multiprocessing, мы получим неожиданный результат.
Каждый независимый воркер будет генерировать случайные числа идентичные случайным числам других воркеров 🤷♂️
Казалось бы, ну и что? А дело в том, что вы теряете буст от мультипроцессинга для аугментаций и гоняете одни и те же батчи данных по несколько раз.
И этому багу подвержены множество популярных проектов на Pytorch.
Подробнее прочитать можно тут:
https://tanelp.github.io/posts/a-bug-that-plagues-thousands-of-open-source-ml-projects/
tanelp.github.io
Using PyTorch + NumPy? You're making a mistake.
A bug that plagues thousands of open-source ML projects.
Ну а для тех, кто вообще не связан с технологиями и разработкой моделей машинного обучения - посмотрите какую крутую технологию сделали украинские ребята из компании Respeecher.
Эта штука позволяет заменять ваш голос на голос знаменитости и качество поражает.
https://youtu.be/glwgybvxk-0
Эта штука позволяет заменять ваш голос на голос знаменитости и качество поражает.
https://youtu.be/glwgybvxk-0
YouTube
Speaking, whispering and singing in many voices
In this demo we are showing off our new voice cloning engine that supports more emotions and can sing! Visit us at https://respeecher.com if you want to give it a spin in your project.
Note that the processing is *not* real-time at the moment, so the lip…
Note that the processing is *not* real-time at the moment, so the lip…
⚡️Тренировка моделей не spot instance☄️
Полезная тула, которая может помочь вам сэкономить денег на тренировке моделей и организовать пайплайны обучения.
В AWS (Клауд сервис от Амазон) существует опция spot instence. Это аренда серверов по методу биржи.
Со своей стороны вы можете выставить максимальную цену, которую готовы платить за данный сервер в час, Амазон, же в свою очередь, дает вам право пользоваться этими мощностями ровно до тех пор, пока не найдется человек, который перебьет вашу цену.
Из плюсов вы получаете стоимость значительно ниже, чем обычные машины (В том числе GPU), соответсвенный минус - машинку могут забрать в любой момент (вам дается 15 минут для завершения процессов).
Настройка сервера для начала работы достаточно муторная операция, не хотелось бы каждый раз руками создавать машину через aws, настраивать окружение через ssh, а потом постоянно копировать результаты обучения, чтобы они не потерялись, в случае остановки машины.
Все эти проблемы решает spotty - инструмент берет на себя аренду инстанса по вашим авторизационным ключам AWS, разворачивание заранее созданного docker образа, а так же клонирование результатов обучения к вам на машину.
https://github.com/spotty-cloud/spotty/
Полезная тула, которая может помочь вам сэкономить денег на тренировке моделей и организовать пайплайны обучения.
В AWS (Клауд сервис от Амазон) существует опция spot instence. Это аренда серверов по методу биржи.
Со своей стороны вы можете выставить максимальную цену, которую готовы платить за данный сервер в час, Амазон, же в свою очередь, дает вам право пользоваться этими мощностями ровно до тех пор, пока не найдется человек, который перебьет вашу цену.
Из плюсов вы получаете стоимость значительно ниже, чем обычные машины (В том числе GPU), соответсвенный минус - машинку могут забрать в любой момент (вам дается 15 минут для завершения процессов).
Настройка сервера для начала работы достаточно муторная операция, не хотелось бы каждый раз руками создавать машину через aws, настраивать окружение через ssh, а потом постоянно копировать результаты обучения, чтобы они не потерялись, в случае остановки машины.
Все эти проблемы решает spotty - инструмент берет на себя аренду инстанса по вашим авторизационным ключам AWS, разворачивание заранее созданного docker образа, а так же клонирование результатов обучения к вам на машину.
https://github.com/spotty-cloud/spotty/
GitHub
GitHub - spotty-cloud/spotty: Training deep learning models on AWS and GCP instances
Training deep learning models on AWS and GCP instances - spotty-cloud/spotty
🕺 Fast Pose Estimation 🧍♂️
Смотрел, что есть сейчас модного и удобного для вычисления скелета человека на видео, и нашёл интересную библиотечку.
При первом поиске вы скорее всего найдёте популярный проект OpenPose, который реализует описанную выше задачу в виде небольшой C++ библиотеки.
Однако покопавшись дальше я нашёл HyperPose.
Ребята пишут, что они в 4 раза быстрее open pose и в 10 раз быстрее TF Pose.
Достигается это с помощью использования tensorrt (библиотека от nvidia, для ускорения сеточек).
Сама библиотчека достаточно легковесная и легко собирается.
К сожалению имеет api только из C++, но для моей задачи этого вполне хватило.
Использовать ее достаточно легко, ведь даже я, не являясь грандмастером-колбастером по C++ смог это сделать.
В общем, если вы будете делать какие-то домашние или не очень проекты по детекции позиции человека - настоятельно советую посмотреть.
https://github.com/tensorlayer/hyperpose
Смотрел, что есть сейчас модного и удобного для вычисления скелета человека на видео, и нашёл интересную библиотечку.
При первом поиске вы скорее всего найдёте популярный проект OpenPose, который реализует описанную выше задачу в виде небольшой C++ библиотеки.
Однако покопавшись дальше я нашёл HyperPose.
Ребята пишут, что они в 4 раза быстрее open pose и в 10 раз быстрее TF Pose.
Достигается это с помощью использования tensorrt (библиотека от nvidia, для ускорения сеточек).
Сама библиотчека достаточно легковесная и легко собирается.
К сожалению имеет api только из C++, но для моей задачи этого вполне хватило.
Использовать ее достаточно легко, ведь даже я, не являясь грандмастером-колбастером по C++ смог это сделать.
В общем, если вы будете делать какие-то домашние или не очень проекты по детекции позиции человека - настоятельно советую посмотреть.
https://github.com/tensorlayer/hyperpose
GitHub
GitHub - tensorlayer/HyperPose: Library for Fast and Flexible Human Pose Estimation
Library for Fast and Flexible Human Pose Estimation - tensorlayer/HyperPose
🔄TF.jS Converter🔃
Понадобилось мне тут сконвертить модель из tf.js в обычный tensorflow, поскольку оригинала модели на tf не существует.
Оказалось, что никаких официальных инструментов для этого нет, но хорошие ребята подсуетились и сделали.
https://github.com/patlevin/tfjs-to-tf
О том, как пользоваться - здесь:
https://christianjmills.com/tensorflow/tutorial/2020/09/15/How-to-Convert-a-TensorFlow-js-Graph-Model-to-a-Tensorflow-SavedModel.html
Понадобилось мне тут сконвертить модель из tf.js в обычный tensorflow, поскольку оригинала модели на tf не существует.
Оказалось, что никаких официальных инструментов для этого нет, но хорошие ребята подсуетились и сделали.
https://github.com/patlevin/tfjs-to-tf
О том, как пользоваться - здесь:
https://christianjmills.com/tensorflow/tutorial/2020/09/15/How-to-Convert-a-TensorFlow-js-Graph-Model-to-a-Tensorflow-SavedModel.html
GitHub
GitHub - patlevin/tfjs-to-tf: A TensorFlow.js Graph Model Converter
A TensorFlow.js Graph Model Converter. Contribute to patlevin/tfjs-to-tf development by creating an account on GitHub.
🌤ODS Summer of Code 🌞
Стартовала летняя школа проектов в сфере DL от ODS. Суть примерно та же, как и в Google Summer of Code. Записываетесь на проект, пилите в рамках него крутые и полезные задачки, а в конце получаете всякие ништяки и гору опыта.
Среди проектов есть и мой 🌚, пусть пока и не очень развитый, но есть шанс это исправить!
https://ods.ai/tracks/summer-of-code-2021
Стартовала летняя школа проектов в сфере DL от ODS. Суть примерно та же, как и в Google Summer of Code. Записываетесь на проект, пилите в рамках него крутые и полезные задачки, а в конце получаете всякие ништяки и гору опыта.
Среди проектов есть и мой 🌚, пусть пока и не очень развитый, но есть шанс это исправить!
https://ods.ai/tracks/summer-of-code-2021
⚡️Yolov5 TensorRT Jetson ☄️
В общем, недавно я купил Nvidia Jetson Nano, это такой маленький компьютер похожий на Raspberry PI, но с маленькой видеокарточкой.
В качестве упражнения сделал небольшой проектик, который позволяет без лишней боли портировать Yolov5 на TensorRT для Jetson.
Важное уточнение, что сейчас инференс оптимизирован именно под Jetson, ибо у него есть некоторые железные особенности, так, например в нем отсутсвует раздельная RAM и DRAM, видеокарточка и процессор живут в рамках одной памяти.
Там еще не допилены ряд фичей, но уже работает мультиклассовая детекция. В ближайшее время опубликую готовый докер контейнер, чтобы не пришлось собирать свой.
Так что, если вдруг интересовались темой edge девайсов -- поставьте звездочку, мне будет приятно.
https://github.com/alxmamaev/jetson_yolov5_tensorrt
В общем, недавно я купил Nvidia Jetson Nano, это такой маленький компьютер похожий на Raspberry PI, но с маленькой видеокарточкой.
В качестве упражнения сделал небольшой проектик, который позволяет без лишней боли портировать Yolov5 на TensorRT для Jetson.
Важное уточнение, что сейчас инференс оптимизирован именно под Jetson, ибо у него есть некоторые железные особенности, так, например в нем отсутсвует раздельная RAM и DRAM, видеокарточка и процессор живут в рамках одной памяти.
Там еще не допилены ряд фичей, но уже работает мультиклассовая детекция. В ближайшее время опубликую готовый докер контейнер, чтобы не пришлось собирать свой.
Так что, если вдруг интересовались темой edge девайсов -- поставьте звездочку, мне будет приятно.
https://github.com/alxmamaev/jetson_yolov5_tensorrt
GitHub
GitHub - alxmamaev/jetson_yolov5_tensorrt: Docker image and wrapper for converting and inference YOLO-v5 model
Docker image and wrapper for converting and inference YOLO-v5 model - GitHub - alxmamaev/jetson_yolov5_tensorrt: Docker image and wrapper for converting and inference YOLO-v5 model
Есть идейка погонять разные штуки на Jetson Nano и сделать небольшую обзорную статью того, что на нем можно сделать.
Из интересного - попробовать запустить TTS, модельки huggingface + Quake 3.
Если интересно - лайк, если есть идеи - в лс @alxmamaev
Из интересного - попробовать запустить TTS, модельки huggingface + Quake 3.
Если интересно - лайк, если есть идеи - в лс @alxmamaev
✍️ Как писать хорошие сообщений в Git 📝
Пока нет возможности написать подробный обзор jetson, т.к. я в некотором отъезде, но я уже завел себе страничку с блогом на своем домене 👉👈
Но не оставлять же вас без полезного контента. В последнее время я чаще читаю различные материалы не только про DS и ML, а в целом про разработку, computer science, и всякий технический обвес в виде устройства linux и кластеров. Думаю, что никто не расстроится, если подобный материал будет появляться здесь.
Я долгое время пытаюсь приучить себя к различным "аккуратным" методам ведения разработки, такие как: типизирование в питоне, докстринги и хорошие коммит месседжи.
Если вы все еще не уверены, что правильно пишете сообщения в комментах, рекомендую ознакомиться с этой статьей, где автор по полочкам рассказывает как делать это легко и непринужденно.
https://chris.beams.io/posts/git-commit/
Пока нет возможности написать подробный обзор jetson, т.к. я в некотором отъезде, но я уже завел себе страничку с блогом на своем домене 👉👈
Но не оставлять же вас без полезного контента. В последнее время я чаще читаю различные материалы не только про DS и ML, а в целом про разработку, computer science, и всякий технический обвес в виде устройства linux и кластеров. Думаю, что никто не расстроится, если подобный материал будет появляться здесь.
Я долгое время пытаюсь приучить себя к различным "аккуратным" методам ведения разработки, такие как: типизирование в питоне, докстринги и хорошие коммит месседжи.
Если вы все еще не уверены, что правильно пишете сообщения в комментах, рекомендую ознакомиться с этой статьей, где автор по полочкам рассказывает как делать это легко и непринужденно.
https://chris.beams.io/posts/git-commit/
cbeams
How to Write a Git Commit Message
Commit messages matter. Here's how to write them well.
🐍 Мысли в слух про Enviroment и Conda 📦
Я пользуюсь Anaconda достаточно долгое время, примерно с того дня, когда я заинтересовался Data Science как таковым.
Мне его представили как удобный инструмент, чтобы устанавливать библиотеки на рабочую машину.
Я пользовался windows и тогда мне это показалось безумно удобным инструментом, ведь многие пакеты не хотели просто так устанавливаться под виндой.
Шли годы, я оброс бородой и опытом, давно променял windows на более удобные платформы, но по прежнему продолжал пользоваться conda.
Я спрашивал себя - а что есть действительно наилучший способ организации рабочего окружения? Почему я должен отказаться от conda?
Внятного ответа в интернете я найти так и не смог, везде были свои за и против. Кто-то находится в лагере venv, кто-то в virtualenv.
Но недавно мне пришло осознание и я понял как сделать лучше, а самое главное - зачем.
Главная особенность conda заключается в том, что в отличие от pip оно так же поставляет собранные бинарники под любые задачи, то есть вы можете устновить ffmpeg, openblas, openfst и другие вещи прямо из конды, хотя сами эти пакеты могут быть совсем не связаны с питоном. В то же время pip и средства виртуализации venv и ему подобные позволяют вам "изолировать" именно ваше питоновское окружение, это означат, что проблемы с конфликтами бинарных пакетов все еще остаются.
Во многом виртуализация conda меня устраивала, но недавно произошло важное событие - я перешел на macbook m1, соответсвенно архитектура процессора полностью поменялась, больше никаких x86, только arm. И соответсвенно мои попытки скачать какие-то бинарные пакеты из conda не увенчались успехом. Их просто не существует, нет никаких вариантов поставить их от туда. Придется скачивать source code и собирать их самостоятельно с помощью cmake и gcc. Естественно делать это просто на тачке - глупо. Завтра я перееду на другой ноут - придется вспоминать все инструкции и процесс инсталяции, что не есть хорошо.
Решение вырисовывается само собой - давайте использовать докер по умолчанию для любого окружения проекта. То есть буквально, новый проект - создаете новый docker контейнер под него.
Какие плюсы из этого есть?
- Реальная изоляция окружения, то есть у вас по умолчанию проекты никогда не будут конфликтовать между собой, вы не забудете поменять env, ведь у каждого проекта он свой, а если и забудете, будет не проблематично откатить его назад.
- Фиксация всех изменений окружения. В dockerfile вы сами прописываете все инструкции того, куда что скачать, как что распаковать и это не забудется, и не придется писать отдельную инструкцию в confluence и любую другую систему вики.
- Легкая переносимость между устройствами - если вы меняете рабочую станцию или просто хотите создать аналогичное окружение на сервере, вы просто пуллите последнюю версию dockerfile и делаете билд
- Прозрачное понимание проблем сборки - если что-то не собралось под вашу платформу, вы не попадаете в патовую ситуацию, что раз уж нет бинарника - вы ничего не можете сделать, вы можете просто прописать свои "правильные" инструкции для сборки под эту платформу.
Я пользуюсь Anaconda достаточно долгое время, примерно с того дня, когда я заинтересовался Data Science как таковым.
Мне его представили как удобный инструмент, чтобы устанавливать библиотеки на рабочую машину.
Я пользовался windows и тогда мне это показалось безумно удобным инструментом, ведь многие пакеты не хотели просто так устанавливаться под виндой.
Шли годы, я оброс бородой и опытом, давно променял windows на более удобные платформы, но по прежнему продолжал пользоваться conda.
Я спрашивал себя - а что есть действительно наилучший способ организации рабочего окружения? Почему я должен отказаться от conda?
Внятного ответа в интернете я найти так и не смог, везде были свои за и против. Кто-то находится в лагере venv, кто-то в virtualenv.
Но недавно мне пришло осознание и я понял как сделать лучше, а самое главное - зачем.
Главная особенность conda заключается в том, что в отличие от pip оно так же поставляет собранные бинарники под любые задачи, то есть вы можете устновить ffmpeg, openblas, openfst и другие вещи прямо из конды, хотя сами эти пакеты могут быть совсем не связаны с питоном. В то же время pip и средства виртуализации venv и ему подобные позволяют вам "изолировать" именно ваше питоновское окружение, это означат, что проблемы с конфликтами бинарных пакетов все еще остаются.
Во многом виртуализация conda меня устраивала, но недавно произошло важное событие - я перешел на macbook m1, соответсвенно архитектура процессора полностью поменялась, больше никаких x86, только arm. И соответсвенно мои попытки скачать какие-то бинарные пакеты из conda не увенчались успехом. Их просто не существует, нет никаких вариантов поставить их от туда. Придется скачивать source code и собирать их самостоятельно с помощью cmake и gcc. Естественно делать это просто на тачке - глупо. Завтра я перееду на другой ноут - придется вспоминать все инструкции и процесс инсталяции, что не есть хорошо.
Решение вырисовывается само собой - давайте использовать докер по умолчанию для любого окружения проекта. То есть буквально, новый проект - создаете новый docker контейнер под него.
Какие плюсы из этого есть?
- Реальная изоляция окружения, то есть у вас по умолчанию проекты никогда не будут конфликтовать между собой, вы не забудете поменять env, ведь у каждого проекта он свой, а если и забудете, будет не проблематично откатить его назад.
- Фиксация всех изменений окружения. В dockerfile вы сами прописываете все инструкции того, куда что скачать, как что распаковать и это не забудется, и не придется писать отдельную инструкцию в confluence и любую другую систему вики.
- Легкая переносимость между устройствами - если вы меняете рабочую станцию или просто хотите создать аналогичное окружение на сервере, вы просто пуллите последнюю версию dockerfile и делаете билд
- Прозрачное понимание проблем сборки - если что-то не собралось под вашу платформу, вы не попадаете в патовую ситуацию, что раз уж нет бинарника - вы ничего не можете сделать, вы можете просто прописать свои "правильные" инструкции для сборки под эту платформу.
This media is not supported in your browser
VIEW IN TELEGRAM
Интересное наблюдение, в парке Ривьера в Сочи есть стенд с информацией об основателе парка и его фотографию анимировали с помощью First Order Model от снепа, с помощью ее же работает приложение Avatarify.
👍1
Кстати, в тиктоке был похожий тренд - оживлять фото умерших родственников. Немного крипово, но такова реальность.
https://vm.tiktok.com/ZSe8ab8XG/
https://vm.tiktok.com/ZSe8ab8XG/
TikTok
This video is unavailable. Visit TikTok to discover more trending videos.
Make Your Day