Обновить
876.76

Python *

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

Читать далее

Робот-самурай. Как научить телеграм-бота писать хокку

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

Привет! Давно ничего не писал. Обещанного в прошло статье бота закончил, проект оказался довольно сложным, но опыта и знаний заметно прибавилось. А значит время начать новый проект! В этот раз, вдохновившись глубочайшими мыслями японских поэтов-философов, мы будем делать бота, который не просто постит хокку, а сам пишет и подбирает картинку по теме. Строго говоря, бот не придумывает хокку, а формирует новые из уже существующих, но хуже, как мне кажется, он от этого не становится. Итоговый код я оставлю на своём GitHub, а за работой бота можно следить в этом Телеграм канале. Подпишитесь, очень хочу, чтобы этот канал набрал аудиторию.

Читать далее

Основы работы со Spark DataFrame

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

При работе с распределенными базами данных, возникают задачи, которые ввиду технических ограничений сложно или невозможно решить с помощью всем привычного пакета Pandas на Python. Решением может стать использование распределенных вычислений Spark и его собственных DataFrame.

Читать далее

Динамика в деле: интерактивные графики в Dash

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

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

Читать далее

VPN на минималках ч.2, или трое в docker не считая туннеля

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

Привет, хабр! 

К прошлой статье закономерно возник ряд вопросов, и, перед тем как продолжить рассказ о внутривенном курсе отечественного велосипедостроения внесу ряд важных уточнений. Как мне показалось, постановка задачи была достаточно понятной. Со временем оказалось, что всё-таки показалось.

Читать далее

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

IT-способ получения информации из достоверного источника

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

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

Читать далее

Открываем шлагбаум кнопкой на руле автомобиля

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

Привет, Хабр!

Я живу в Москве и у меня во дворе, как и у многих, установлен шлагбаум. Некоторое время назад я задался вопросом, как мне упростить процесс его открытия? Хотелось, чтобы можно было добавлять это действие в сценарии умного дома, открывать по кнопке в авто, давать друзьям возможность открывать его самостоятельно и т.д. Частично я решил проблему еще в прошлом году, но недавно всё "допилил" и решил поделиться.

Читать далее

Сказание о том, как я argparse препарировал

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

Привет. Недавно мне потребовалось пересобрать N парсеров в один. В нем должен быть родитель и N детей, а также возможность использовать функции сразу всех подпарсеров.

Спойлер: это было непросто! В статье расскажу о проблемах, с которыми столкнулся, а также объясню, как устроен модуль argparse в Python 3 и что он умеет.

Приключение на 20 минут

Работа с отсутствующими значениями в Pandas

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

Когда значение данных для объекта для определенного наблюдения не сохраняется, это означает, что эта функция имеет недостающее значение. Обычно отсутствующее значение в наборе данных отображается как вопросительный знак , ноль, NaN или просто пустая ячейка. Но как можно справиться с недостающими данными?

Конечно, каждая ситуация отличается и должна оцениваться по-разному. Есть много способов справиться с недостающими значениями. Рассмотрим типичные варианты на примере набора данных - 'Titanic'. Эти данные являются открытым набором данных Kaggle.

Для анализа необходимо импортировать библиотеки Python и загрузить данные.

Для загрузки используется метод Pandas - read.csv(). В скобках указывается путь к файлу в кавычках, чтобы Pandas считывал файл во фрейм данных (Dataframes - df) с этого адреса. Путь к файлу может быть URL адрес или вашим локальным адресом файла.

Читать далее

Работа с docx c помощью bayoo-docx

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

Нужно найти в docx-файле определенный фрагмент и оставить к нему комментарий? bayoo-docx (форк python-docx) умеет это! В конце статьи в виде бонуса расскажем, как определить номер страницы. 😊

Долгое время в библиотеке python-docx отсутствовала возможность добавления комментариев к word-файлам «из коробки». Созданное еще в 2014 году обсуждение в репозитории python-docx о том, как добавлять комментарии, было довольно активным, но не было найдено решений без прямого вмешательства в xml-разметку. Однако в 2020 году появился форк от python-docx – bayoo-docx, позволяющий добавлять комментарии быстро и легко.

Читать далее

Пространственный анализ тренировок с помощью GeoPandas и Folium

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

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

Для решения задач я использовал несколько библиотек Python, предназначенных для работы с пространственными данными и их визуализации – GeoPandas, PyProj, Shapely, Folium, Branca, H3-Pandas, OSMnx.

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

Читать далее

Сделай то, сделай это, сделай сам

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

Доброго времени суток Дамы и Господа! Многим приходилось сталкиваться с необходимостью анализа большого количества данных при помощи Python по запросам начальства или коллег. Однотипные запросы поступают с определенной периодичностью, и не составляет труда подставить новые данные в свой код и провести анализ. Но иногда из-за определенной нагрузки не всегда хочется заниматься таким анализом. Намного проще сделать скрипт с графическим интерфейсом, чтобы сам заказчик для анализа данных мог нажать пару кнопок и получить желаемый результат. Тем более, можно изначально вложить в интерфейс столько «хотелок» заказчика для анализа, сколько будет душе угодно.

Читать далее

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