Обновить
1024K+

Python *

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

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

Паттерн производитель-потребитель и очередь с приоритетом asyncio.PriorityQueue в Python

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели11K

В предыдущей статье вы могли узнать что такое очередь в целом и как работает FIFO-очередь asyncio.Queue. Давайте продолжим и посмотрим на примере библиотеки aiohttp как работают очереди с приоритетом asyncio.PriorityQueue.

Читать далее

Делаем играющего онлайн шахматного бота при помощи Lichess API

Время на прочтение2 мин
Охват и читатели14K

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

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

Kornia — библиотека компьютерного зрения

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели16K

Kornia это open source библиотека для решения задач компьютерного зрения. Она использует PyTorch в качестве основного бэкенда и состоит из набора дифференцируемых процедур и модулей. Создатели библиотеки вдохновлялись OpenCV, и поэтому Kornia является его аналогом, но при этом в некоторых моментах превосходит. Главным преимуществом Kornia по сравнению с тем же OpenCV, scikit-image или с Albumentations является возможность обрабатывать изображения батчами, а не по одному изображению и возможность обрабатывать данные на GPU.

Читать далее

Как я проектирую и разрабатываю расширения Python на Rust

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели8K

В этой статье я хочу рассказать о том, как я проектирую комплексные расширения для Python на Rust с использованием PyO3 и почему я принимаю те или иные проектные решения.

Читать далее

Построение ML-пайплайна для рекомендательной системы с помощью Google Cloud Platform

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели3.3K

Построение ML-пайплайна для рекомендательной системы с помощью Google Cloud Platform

Данный материал будет описывать опыт нашей команды по построению end-to-end рекомендательной ML-системы визуального поиска похожих товаров с помощью инструментов, предоставляемых облачной платформой Google Cloud Platform (далее –  GCP) и структурно будет состоять из трех частей, описывающих три этапа разработки: от простой реализации задачи к более сложной, или точнее – из двух с половиной, так как второй этап оказался не жизнеспособным, но обо всем по порядку.

Читать далее

Как PaaS решил проблемы стандартизации разработки сервиса одной утилитой

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели4K

Привет ? На связи команда PaaS СберМаркета. Меня зовут Роман, и уже больше 2-х лет моя группа занимается разработкой инструментов для разработчиков, в том числе утилитой sbm-cli, о которой хочу рассказать сегодня.

Вероятно вы каждый день пользуетесь консольными утилитами, такими как git, homebrew, ssh, grep, find, etc. Мы сделали command line interface приложение, запуск которого на локальной машине разработчика может превышать количество запусков команды git (спойлер: статистика в конце статьи).

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

Читать далее

Введение в библиотеку Diffusers и диффузионные модели

Уровень сложностиПростой
Время на прочтение16 мин
Охват и читатели25K

Diffusers — это библиотека от Hugging Face, которая позволяет работать с сотнями предобученных моделей класса Stable Diffusion для создания изображений и аудио.

Всегда хотели стать художником, но у вас лапки? :) Тогда Diffusers этот то, что вам нужно!

В этой статье рассмотрим основные возможности библиотеки, ее компонентов, а также моделей Stable Diffusion в целом.

Мои курсы: Разработка LLM с нуля | Алгоритмы Машинного обучения с нуля

Читать далее

«Консервируем» данные: сравниваем модуль pickle и альтернативные способы сериализации

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели9.2K

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

Сегодня с вами участник профессионального сообщества NTA Милованов Максим.

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

В Python есть разнообразные способы сделать это, некоторые их которых рассмотрю и сравню в этом посте.

Узнать больше

Сбер. Как некрасиво поступить на конкурсе красоты

Время на прочтение13 мин
Охват и читатели60K

Хабр - не жалобная книга, я знаю. Но тут история про код, с примерами, разбором антипаттернов и всё такое, поэтому я рискну.

Всё началось, когда я узнал про конкурс красоты кода от Сбера. Я как раз хотел поучаствовать в каком-нибудь эпичным конкурсе, а тут как раз он мне и подвернулся, тем более что я - тот человек, которому есть что рассказать про красивый код. Я даже целую статью запилил о том, как писать красивый и понятный код. Так что что я решил, что в данном случае мои шансы на победу - в отличие от остальных конкурсов - всё же больше 0%. Кроме того, я хотел выступить на конференции PiterPy (спойлер: хрен мне), чтобы рассказать там про красивый код и всё такое, поэтому участие в конкурсе и сравнение результатов было бы классным подспорьем.

Что же пошло не так?

Что я понял на первой работе программистом / Мои советы Junior-разработчикам

Время на прочтение8 мин
Охват и читатели75K

Всем привет! Меня зовут Максим. Я backend-разработчик, который не так давно устроился на свою первую работу. В этой статье хочу поделиться своими наблюдениями/советами/рекомендациями для начинающих программистов. Ведь, как известно, если опыт не превращён в текст, он даже не становится прошлым.

Материал будет полезен тем, кто ищет первую работу или не так давно её нашёл. Примеры будут из области Python Backend, но наблюдения универсальны и спокойно перекладываются на другую область. Поехали!

Читать далее

Swirl для анализа корпоративных данных: как мы использовали ИИ-поиск и что из этого вышло

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.3K

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

В итоге мы решили попробовать Swirl - поисковую платформу с открытым исходным кодом, созданную на Python и Django, позволяющую объединить поиск в базах данных (SQL и NoSQL), облачных сервисах, поисковых провайдерах, хранилищах данных и таких инструментах, как Miro, Jira, GitHub и т.д., а на выходе получить результаты с аналитикой от ChatGPT.

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

Читать далее

MLOps на примере прогноза движений акций с помощью MLRun

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели4.8K

MLOps: структурирование пути от концепции модели к ее реальному воздействию

В современном мире, основанном на данных, машинное обучение является символом инноваций. Однако преобразование модели из теоретической конструкции в готовый к использованию инструмент — сложная задача. Откройте для себя MLOps — гармоничное сочетание «машинного обучения» и «операций», созданное для решения этой сложной задачи.

Черпая вдохновение из DevOps в разработке программного обеспечения, MLOps объединяется вокруг основных задач, предлагая структурированный путь для проектов ML на протяжении всего их жизненного цикла.

Теперь давайте углубимся в мир MLOps с помощью MLRun.

Читать далее

Airflow vs NiFi: исследуем оркестратор для формирования витрин данных

Уровень сложностиСредний
Время на прочтение19 мин
Охват и читатели18K

Сегодня концепция витрин данных является стандартом и используется повсеместно. Поэтому даже небольшим компаниям важно определиться с помощью каких инструментов они будут решать проблему оркестрации процессов построения витрин. Какой инструмент в условиях относительно небольшого бюджета позволит достигать поставленных целей? Этот вопрос мы и постараемся раскрыть в статье. Для этого рассмотрим два известных инструмента: Airflow и NiFi, а также постараемся выявить их сильные и слабые стороны.

Читать далее

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

Эксперименты с цифровым КИХ фильтром в плате FPGA MCY316

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели4.4K

В своей предыдущей статье я написал, как произвести оцифровку звукового сигнала FPGA платой MCY316. В том проекте данные полученные из АЦП просто передавались в компьютер через последовательный порт. Уже на компьютере данные принимались из последовательного порта программой на питоне и отрисовывались в окне.

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

Рисунок выше показывает схему моего эксперимента.

Читать далее

Операторы в Python: Глубокое погружение в магию '+' и '*'

Уровень сложностиСредний
Время на прочтение2 мин
Охват и читатели8.9K

Каждый программист, использующий Python, наверняка сталкивался с операторами, такими как сложение (+) и умножение (*). Но что происходит "под капотом" этих операторов? В этой статье мы погрузимся в детали их работы на примере базовых типов, пользовательских классов и строк.

Читать далее

Многоклассовая и многозадачная классификация

Уровень сложностиПростой
Время на прочтение13 мин
Охват и читатели31K

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

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

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

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

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

Читать далее

Полноценный 2D-платформер на Python в 2023? Мой опыт

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели15K

Говорят, что на Python легко и просто создавать игры-платформеры. Правда ли?

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

Читать далее

ipywidgets: создаем графические приложения на базе Jupyter

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели14K

Jupyter Notebook – это крайне удобный инструмент для разработчика. Являясь дата-инженером, я использую его, как основную IDE. Единственным его ограничением является невозможность создания графических форм классическими методами, принятыми в Python. В этой статье я хочу поделиться лучшим способом решить эту проблему.

Читать далее

10 лучших практик логирования в Python

Уровень сложностиПростой
Время на прочтение19 мин
Охват и читатели55K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее

Компьютерные решения больше не запатентовать

Уровень сложностиПростой
Время на прочтение23 мин
Охват и читатели24K

Я патентный поверенный занимаюсь тем, что помогаю изобретателям получить патентную защиту их разработок (изобретений и полезных моделей).

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

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

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

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

Дальше я тезисно буду описывать, что делал и как, чтобы получить необходимые мне данные и какие интересные закономерности и факты нашел.

Читать далее