Топ 5 тенденций web-разработки на Python для 2021 года

Недавний опрос 24 000 разработчиков Python в 150 странах мира, который провела компания Packt показал, что, более половины всех разработчиков Python традиционно используют его и для веб-разработки, хотя 59% разработчиков используют его в проектах Data Science! Python обогнал Java и в мире стал вторым по популярности языком программирования для Web. Уже готов богатый набор фреймворков, например, Django, Flask и Pyramid для web-разработки. Здесь мы обсудим пять тенденций, которые делают Python наилучшим выбором для веб‑разработчиков в 2021 году.
Читать далее «Топ 5 тенденций web-разработки на Python для 2021 года»

Да, вы должны понимать, что такое обратное распространение

Когда в Стэнфорде появился курс CS231n (глубокое машинное обучение), то для него намеренно и специально были разработаны задания по программированию самого низкого уровня, включающие реальные вычисления, связанные с обратным распространением ошибок. Студенты должны были реализовать прямой и обратный проход каждого слоя в необработанном виде. Естественно, некоторые ученики неизбежно жаловались на доске объявлений в классе:

«Почему мы должны описывать обратный проход, когда в реальном мире есть фреймворки такие, как TensorFlow, которые вычисляют его автоматически?»

Кажется вполне разумно, на первый взгляд, что если после окончания курса вы никогда не собираетесь писать обратные проходы, то зачем в этом практиковаться? Преподаватели ради собственного развлечения мучают студентов? Некоторые простые ответы могут привести к аргументам типа «то, что скрывается под капотом есть бесполезная интеллектуальная мастурбация и надо ли этим заниматься» или «возможно, позже вы захотите улучшить основной алгоритм», однако, есть гораздо более сильный и практичный аргумент, которому я хотел бы посвятить целый пост:

> Проблема обратного распространения — очень даже неплохая концепция.
Читать далее «Да, вы должны понимать, что такое обратное распространение»

Рецепт приготовления нейронных сетей

Года три назад в своих Записках я опубликовал историю из научно-популярной лекции «ШАМАНСТВО» В АНАЛИЗЕ ДАННЫХ доцента ВМК МГУ имени М.В. Ломоносова, д.ф.-м.н. А.Г. Дьяконова. В ней внятно объясняется слово «шаманство» по отношении к обработке больших данных и необходимость наличия у исследователя некоторого эмпирического опыта, а не только знания строгостей математики. Вопрос соотношения детерминизма и хаоса в любых природных процессах волновал меня ещё со студенческой скамьи, а что-бы преодалеть хаос в нейронных сетях и заставить их работать должным образом творец должен их одухотворить.

С тех пор много воды утекло и накопился некоторый опыт по поводу эксплуатации и приготовления нейронных сетей, а на глаза случайно попалось эссе A Recipe for Training Neural Networks Andrej Karpathy, мысли которого с некоторыми дополнениями и комментариями созвучны моим, а выпускница магистратуры пожаловалась на низкую вероятность прогноза дефектов керамических изоляторов высоковольтных линий электропередач и всё сложилось в кучку. Так и появилась эта записка с рецептом практического приготовления нейронных сетей. Начинаем… Вперёд и вниз ↓

Есть пара фактов, которые подвигли написать этот рецепт.
Читать далее «Рецепт приготовления нейронных сетей»

40+ приложений технологии машинного обучения для бизнеса

Перевод поста Филиппа Ходжетта, выступавшего на конференции Hollywood Professional Association Tech Retreat. Надеюсь, собранный в одном месте список актуальных сервисов, готовых к интеграции в ваши проекты, и примеров работающего бизнеса на основе машинного обучения будет полезен разработчикам. Предлагаю делиться вашими собственными результатами успешного внедрения проектов, связанных с глубинным обучением.
Читать далее «40+ приложений технологии машинного обучения для бизнеса»

Вспомни молодость или как раскрасить черно‑белое фото из прошлого века

В жаркую последнюю субботу весны 2021 года, когда на улице за 30°С, природа с озёрами и горами далеко, а кондиционер вместе с увлажнителем создаёт в квартире комфортную обстановку и совершать телодвижения лениво, посмотрел юношеские чёрно‑белые фотографии. В то время, когда я учился в школе, у меня по наследству было три фотоаппарата — ФЭД (Феликс Эдмундович Дзержинский), собранный бывшими малолетними беспризорниками в колонии, которой командовал Макаренко А.С. в начале 30-х годов прошлого века, найденный в деревне, но исправно выполнявший свою работу в 70-х; Зенит-Е, один из первых зеркальных фотоаппаратов СССР образца 1966 года и моя любимая Смена-8М, как говорили раньше «мыльница», не отличающаяся качеством оптики и соответственно качественной фотографий, но свободно помещающаяся в карман. В нашем классе мало у кого не было своего фотоаппарата. В конце этих записок вы увидите галерею старых раскрашенных фотографий, большинство из которых сделаны именно «мыльницами».

Так вот, ближе к вечеру, когда жара начала спадать и организм начал подавать признаки жизни, после приготовления и успешного уничтожения окрошки, появилась мысль раскрасить юношеские школьные фотографии. Появился и был реализован целый проект и посмотрите, как и что из этого получилось.

Этот проект целью своей имеет автоматическое преобразование старых черно-белых фотографий в цветные с помощью Python, используя библиотеки OpenCV, DNN и Caffe. Написанный и отлаженный скрипт Python bw2c-ru.py принимает черно-белое изображение на входе и автоматически возвращает цветное изображение на выходе.
Читать далее «Вспомни молодость или как раскрасить черно‑белое фото из прошлого века»

Урок 1. Распознавание изображений и обнаружение объектов

Начинаю серию уроков (мини-курс) о распознавании изображений и обнаружении объектов.

В первой части краткое объяснение понятий распознавание изображений с использованием традиционных методов компьютерного зрения. Я называю методы, не основанные на глубоком обучении, традиционными методами компьютерного зрения, потому что они быстро заменяются методами, основанными на глубоком обучении. Тем не менее, традиционные подходы к компьютерному зрению используются по-прежнему во многих приложениях. Многие из этих алгоритмов также доступны в библиотеках компьютерного зрения, таких как OpenCV, и очень хорошо работают «из коробки».
Читать далее «Урок 1. Распознавание изображений и обнаружение объектов»

Чтение и запись видео с использованием OpenCV

Чтение и запись видео в OpenCV очень похоже на чтение и запись изображений. Видео — это не что иное, как серия изображений, которые часто называют кадрами. Итак, все, что вам нужно сделать, это перебрать все кадры в видеопоследовательности, а затем обрабатывать по одному кадру за раз. В этом посте мы покажем, как читать, отображать и записывать видео из файла, последовательности изображений и веб-камеры. Мы также рассмотрим некоторые ошибки, которые могут возникнуть в процессе, и поможем понять, как их исправить.

Читать далее «Чтение и запись видео с использованием OpenCV»