Все потоки
Поиск
Написать публикацию
Обновить
412.14

Python *

Высокоуровневый язык программирования

Сначала показывать
Порог рейтинга
Уровень сложности

Парадоксальный рост популярности Python в научных вычислениях

Время на прочтение9 мин
Количество просмотров9.5K

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

Читать далее

TileTool — модуль для обучения детей основам разработки игр

Время на прочтение9 мин
Количество просмотров14K

TileTool -игра на Python за считанные минуты. Модуль генерации и построения двухмерных игровых миров TileTool, базирующийся на небезызвестном PyGame, экономит кучу времени и помогает детям, изучающим программирование без боли освоить геймдев, а инди разработчикам упростить и ускорить разработку.

Читать далее

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 6

Время на прочтение5 мин
Количество просмотров22K

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

Читать далее

Генетический алгоритм поиска решения для задачи по выбору планировок этажа многоквартирного дома

Время на прочтение6 мин
Количество просмотров8.6K

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

Читать далее

Как я случайно удалил 7 терабайт видео перед запуском в продакшн

Время на прочтение6 мин
Количество просмотров12K

К старту курса по автоматизированному тестированию на Python делимся материалом о том, насколько вредным может стать привыкание к библиотекам и насколько полезными — инструменты автоматизированного тестирования. За подробностями приглашаем под кат.

Читать далее

Исчезающие тени логистических облаков

Время на прочтение5 мин
Количество просмотров3.8K

«Умный в гору не пойдёт, умный гору обойдёт». Примерно так рассуждали DS-специалисты при решении задачи, требующей вычисления 10+ млн расстояний между парами точек по их географическим координатам.

Читать далее

Основы Интерактивных карт

Время на прочтение7 мин
Количество просмотров39K

Для визуализации интерактивных карт рассмотрим библиотеку - Folium.

Folium — это мощная библиотека визуализации данных в Python, которая была создана в первую очередь для того, чтобы помочь людям визуализировать гео-пространственные данные.

Folium - это библиотека с открытым исходным кодом, созданная на основе возможностей Datawrangling экосистемы.

С помощью Folium можно создать карту любого местоположения в мире, если вы знаете его значения широты и долготы.

Также можете создать карту и наложить маркеры, а также кластеры маркеров поверх карты для крутых и очень интересных визуализаций.

Folium - это библиотека Python, которая помогает создавать несколько типов карт Leaflet. Тот факт, что результаты Folium интерактивны, делает эту библиотеку очень полезной для создания информационных панелей.

На официальной странице документации Folium:

Читать далее

Матчинг шаблона в Python 3.10

Время на прочтение3 мин
Количество просмотров7.6K

В Python 3.10 имплементирован своего рода оператор switch — что-то вроде него. Оператор switch в других языках, таких как C или Java, выполняет простой матчинг значения переменной и исполняет код в зависимости от этой величины.

Он может использоваться просто, как обычный оператор switch, но способен на гораздо большее.

Возможно, этого было бы достаточно для языка C, но ведь речь о Python, а в Python 3.10 реализована гораздо более мощная и гибкая конструкция, называемая структурным сопоставлением шаблона. Она может использоваться как простой оператор switch, но способна на гораздо большее.

Давайте рассмотрим несложный пример с оператором switch. Ниже приведен сниппет, который осуществляет выбор одного значения. Мы проверим его, запустив в цикле со значениями 1,2,3 и 4.

Читать далее

Дата саентист и циклы-циклы-циклы…

Время на прочтение14 мин
Количество просмотров6.7K


«How I Met Your Mother», season 6, ep. 7


Коля любит циклы. 
Толя любит циклы. 
Оля любит циклы. 
Все любят циклы. 

И Сережа тоже.

Один Мамба их не любит. И вот почему.


Если опустить философские рассуждения, что все на уровне процессора является циклом или goto, то можно выделить три причины:


  1. При работе с индексами цикла можно легко проглядеть и допустить ошибку. Но тут помощь приходят итераторы.
  2. Очень часто циклы вручную пишутся очень неэффективно с точки зрения манипуляций с памятью — сильная просадка по производительности. А у вложенных циклов еще и накладные на старт цикла.
  3. Нелинейная структура цикла (break, continue) не позволяют сделать хорошую оптимизацию на уровне процессора или компилятора. А это дополнительно означает, что распараллелить цикл по вычислителям будет очень трудно. В решении этого вопроса помогает функциональный подход и итераторы. Если известно о независимости вычислений значений каждого отдельного шага — надо сообщать об этом компилятору явно.

Все предыдущие публикации.

Читать дальше →

Respect Validation на Python

Время на прочтение5 мин
Количество просмотров9.2K

Всем привет! Сегодня мы поговорим о валидации данных, а точнее о том как я перенёс библиотеку с PHP на Python. Библиотека настолько крутая (по мнению автора), что рекомендую вам с ней ознакомиться, особенно, если вы пишите API с библиотекой flask (ссылка на интеграцию в статье).

Читать далее

Как установить ботов для StarCraft II

Время на прочтение6 мин
Количество просмотров14K

(с) Blizzard Entertainment

В StarCraft II есть встроенные боты, и все с ними хорошо, за исключением того, что они немного тупые, но речь пойдет не о них. В 2017 году разработчик игры компания Blizzard Entertainment опубликовала API, позволяющий создавать внешних ботов. Однако, по какой-то странной причине Blizzard рассматривает этот API как сугубо исследовательский проект, где боты должны сражаться только друг с другом. Нормальной возможности поиграть человеку с ботами они почему-то не сделали, хотя многие геймеры рассматривают ботов как довольно неплохой инструмент тренировок.

Тем не менее все не так плохо. Раз штатной возможности нет, то будем использовать нештатную. Мы все же настроим ботов и повоюем против них. Потом мы с вами, движимые исследовательским порывом, разберемся как устроен АPI, и поднимем окружение разработки, в котором сможем сами писать подобных ботов.
Читать дальше →

Сравнение сервисов фильтрации нецензурной лексики

Время на прочтение4 мин
Количество просмотров11K

Недавно понадобилось мне подключить мой проект (сайт на WordPress, Телеграм-канал, ВК группу) к фильтру матов и озадачился я предложениями, которые выдает интернет. Поэтому решил проанализировать те, что смог найти и составить личный список, который, надеюсь поможет коммунити Хабра.

Читать далее

Распределённое глубокое обучение: параллелизм моделей и данных в TensorFlow

Время на прочтение12 мин
Количество просмотров7.9K

Значительное количество задач, предусматривающих обучение глубоких нейронных сетей, можно решить на отдельном компьютере, обладающем единственным, сравнительно мощным и быстрым GPU. Но бывает так, что нужно что-то помощнее. Например — данные могут просто не поместиться в память, доступную на отдельной машине. Или окажется, что имеющееся «железо» просто не «потянет» некую задачу. В результате может возникнуть необходимость в горизонтальном масштабировании вычислительных мощностей.

«Горизонтальное масштабирование» — это когда в компьютер добавляют дополнительные GPU, или когда используют несколько машин, входящих в состав кластера. При таком подходе нужен какой-то способ эффективного распределения задач обучения моделей по имеющимся системам. В теории всё просто, но в реальной жизни это — задача нетривиальная. На самом деле — существует несколько стратегий организации распределённого обучения. Выбор конкретной стратегии сильно зависит от конкретной задачи, от данных и от модели.

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

Эта публикация входит в серию материалов о глубоком обучении. В предыдущих статьях шла речь о создании собственного цикла обучения для задачи по сегментации изображений с помощью U-net. Мы развернули модель в Google Cloud для того чтобы получить возможность удалённого запуска обучения. Здесь я буду использовать тот же код.

Читать далее

Ближайшие события

Как выжать из солнечной батареи максимум с помощью обучения с подкреплением

Время на прочтение7 мин
Количество просмотров12K

Под катом вас ждёт чертёж установки, блок-схемы агента, работающего методом проб и ошибок, а также визуализации, видеоролики и, конечно, код. Материалом делимся к старту нашего флагманского курса по Data Science.

Читать далее

Преобразование офисных файлов в текст

Время на прочтение4 мин
Количество просмотров6K

Представление документа в виде простого текста понадобится для анализа его содержимого: индексирования и поиска, классификации, предварительной проверки.

В нашем случае, стояла задача предварительного анализа (скоринга) документов по их содержимому. Верхнеуровневый процесс обработки документов построен с использованием MS Power Automate, поэтому конвертор нужно было реализовать в виде некоего облачного сервиса, доступного через HTTP.

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

Читать далее

Изменяемые и неизменяемые объекты в Python

Время на прочтение4 мин
Количество просмотров105K

Все в Python – это объект. Каждый новичок должен сразу усвоить, что все объекты в Python могут быть либо изменяемыми (мутабельным), либо неизменяемыми (иммутабельным). 

Читать далее

Простой поиск дубликатов изображения

Время на прочтение3 мин
Количество просмотров7.8K

Существует множество проверенных решений, основанных на разных алгоритмах. Этот пример использует элементы машинного обучения, текущий уровень развития инструментов, позволяет с минимальными усилиями решать "бытовые задачи". В качестве меры сходства - косинусное сходство. Сравнение многомерных массивов (изображение в цифровом пространстве), ресурсоемкий процесс, поэтому, применяем обученную свёрточную нейронную сеть для уменьшения размерности с учетом важных пространственных признаков. Библиотека keras содержит готовые модели под разные задачи, этот пример задействует архитектуру VGG16 обученную на данных imagenet. Вход в сеть (N, 224, 224, 3), выход (1, 512).

Читать далее

Коротко о 6 простых и эффективных видах визуализации

Время на прочтение3 мин
Количество просмотров8.1K

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

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

В качестве бонуса: визуализация может иллюстрировать написанные отчеты или статьи для облегчения донесения некоторых идей до читателей.

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

Читать далее

Лингвистические особенности речи человека в диалогах с виртуальным ассистентом

Время на прочтение5 мин
Количество просмотров2.5K

Зачастую, для создания виртуальных ассистентов используются подходы на основе машинного обучения и, конечно, подходы на основе правил. Оба (в большей степени машинное обучение) полагаются на исходные данные, которыми обычно являются человеческие диалоги. При этом, не учитывается фактор того, что пользователи диалоговых систем не будут общаться с ними так же как с реальными людьми.

Читать далее

Создаем простой ETL на Python

Время на прочтение6 мин
Количество просмотров27K

В работе аналитика данных часто приходится использовать наборы данных, загружаемые из открытых источников. Рассмотрим простой пример использования конвейера для таких задач.
ETL, сокращение от extract-transform-load, представляет собой серию процессов, которые включают в себя сбор данных, их обработку и хранение в безопасном и доступном месте. Конвейеры ETL (ETL pipeline) позволяют упростить эти процессы с максимальной эффективностью и минимальными издержками.
Рассмотрим пошаговую реализацию конвейера ETL с использованием модулей Python.

Читать далее

Вклад авторов