Pull to refresh
75
0.1
Дмитрий Самсонов @Sdima1357

image processing

Send message

Учимся создавать пакеты Python

Reading time8 min
Views49K
imageПочему важно уметь создавать пакеты Python?
• Пакеты легко устанавливаются (pip install demo).
• Пакеты упрощают разработку (Команда pip install -e устанавливает ваш пакет и следит за тем, чтобы он сам обновлялся в ходе всего процесса разработки).
• Пакеты легко запускать и тестировать (from demo.main import say_hello, а затем тестируем функцию).
• Пакеты легко версионировать, при этом вы не рискуете нарушить работу кода, зависящего от этого пакета (pip install demo==1.0.3).
Читать дальше →

Сравнение Bash и Python при написании скриптов в Linux

Level of difficultyMedium
Reading time24 min
Views28K

Sh (от shell) является обязательным командным интерпретатором для UNIX‑совместимых систем по стандарту POSIX. Однако по возможностям он ограничен, поэтому зачастую вместо него используются более богатые возможностями командные интепретаторы, такие как Bash или Ksh. Ksh обычно используется в операционных системах семейства BSD, в то время как Bash — в операционных системах семейства Linux. Командные интерпретаторы облегчают решение мелких задач, связанных с работой с процессами и файловой системой. В данной статье будут рассматриваться операционные системы Linux, поэтому речь пойдёт о Bash.

Python, в свою очередь, является полноценным интерпретируемым языком программирования, и он также нередко используется для написания скриптов или решения мелких прикладных задач при работе с операционной системой. Современную UNIX‑подобную систему сложно представить как без Sh, так и без Python, если только это не устройство с минималистичной ОС вроде маршрутизатора. Например, в Ubuntu Oracular пакет python3 удалить не получится хотя бы потому, что от него зависит пакет grub‑common, от которого, в свою очередь зависят пакеты grub2-common и, соответственно, grub‑pc, то есть непосредственно загрузчик операционной системы. Таким образом, Python 3 можно смело использовать как замену Bash в случае необходимости.

Читать далее

Как действительно понять нейронные сети и KAN на интуитивном уровне

Level of difficultyHard
Reading time39 min
Views11K

Вот вы читаете очередную статью про KAN и ловите себя на мысли, что ничего не понимаете.

Знакомая ситуация?

Не переживайте, вы не одни. И дело тут не в вас, суть в том, что множество материалов описывают концепции по отдельности, не объединяя их в единую картину.

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

Читать далее

Оптимизация кольцевого буфера для повышения пропускной способности

Level of difficultyMedium
Reading time6 min
Views8.7K

В этой статье мы рассмотрим классический конкурентный кольцевой буфер и обсудим, как его можно оптимизировать для повышения производительности. Я покажу вам, как существенно улучшить этот показатель от 5,5 миллионов элементов в секунду до 112 миллионов элементов в секунду — и эти показатели выше, чем в реализациях Boost и Folly. Если вам требуется готовая реализация со всеми этими оптимизациями, посмотрите мою библиотеку SPSCQueue.h.

Кольцевой буфер также называется очередью «один производитель — один потребитель» (SPSC). В ней не бывает ожидания (и, соответственно, не бывает блокировок), это конкурентный примитив. Такая структура данных находит множество вариантов применения, и здесь я рассмотрю передачу сетевых пакетов между сетевым контроллером и драйверами операционной системы. Основная задача, решаемая при этом — выполнение событий ввода/вывода в относительно новом асинхронном API io_uring.

Читать далее

«А теперь засунем X-сервер в контейнер»

Reading time2 min
Views5.8K

Когда я писал про использование Докера как контейнера с инструментами для работы — вообще‑то речь шла про использование прежде всего доступа через шелл. Ну в самом деле: файлы они и в Африке файлы, редактирую я их Vim‑ом, потому что это удобно, перемещаю MidnightCommander‑ом, по той же причине, для обработки используются Makefile, и всё это окна терминалов.
Во множественном числе.

Читать далее

Пишем свой PyTorch на NumPy. Часть 1

Level of difficultyEasy
Reading time16 min
Views5.5K

PyTorch — это мощный и гибкий фреймворк для машинного обучения, широко используемый для создания нейронных сетей. Он особенно популярен благодаря простоте использования, динамическим вычислительным графам и богатой экосистеме инструментов для обучения моделей.

В этой статье мы реализуем собственную библиотеку машинного обучения на NumPy!

Читать далее

Обратная Матрица (Inverse Matrix)

Level of difficultyEasy
Reading time3 min
Views3.3K

Всем привет. При изучении 3D в программировании мы пользуемся математикой — линейная алгебра, матрицы, векторы, кватернионы. В какой‑то момент становится интересно как устроено пространство 3D, какие принципы и основы заложены в фундамент отображения моделей. Так же, просто на отображении 3D не возможно остановится — хочется добавить свет, тень, как минимум. Для расчета света нам надо отправить в шейдер матрицу модели рисуемого объекта — текущего, нормали плоскостей (например на триангулированный объект на каждый треугольник по нормали выходит).

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

В этой статье покажу как я решил такую задачу — комплексное решение приводящее к обратной матрице.

Читать далее

Контроллер студийных мониторов с коррекцией АЧХ

Level of difficultyMedium
Reading time12 min
Views2.4K

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

Читать далее

Как работают файловые системы Linux-контейнеров

Level of difficultyEasy
Reading time4 min
Views16K

Откуда у контейнера берётся файловая система? Чтобы разобраться, инженер Google Михал Питр воспроизвёл действия Docker и создал файловую систему своими руками. От полноценной реализации его результат отличается тем, что в нём не используется пространство имён для дополнительной изоляции. 

Под катом — перевод, который поможет разобраться, как именно Docker создаёт новую файловую систему с помощью OverlayFS.

Читать далее

Как работает bytearray в Python? Смотрим реализацию на C

Level of difficultyHard
Reading time7 min
Views6.1K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

Сегодня я хочу рассказать, как bytearray устроен внутри.

Под катом будет про: интересные оптимизации, разные аллокаторы в CPython, C pointer math, детали устройства данной структуры данных.

Если вам такое интересно или целиком незнакомо – добро пожаловать!

Читать далее

KAN модель. Пробуем на задаче восстановления табличных данных

Reading time6 min
Views3K

В этом году в научном сообществе прогремела статья MIT про архитектуру Колмогорова-Арнольда. С тех пор выходили различные теоретические разборы идеи. В ИТМО также попробовали применить модель KAN к своим вычислениям и пришли к довольно оптимистичным выводам, по крайней мере в ракурсе задач восстановления табличных данных. Архитектура KAN выглядит перспективной в задачах с большим количеством параметров. На фоне перцептрона KAN нужно меньше данных для обучения, а оптимизированные пакеты для расчета позволяют выполнять вычисления со скоростью, сравнимой с MLP. Рассказываем подробнее, что у нас получилось.

Читать далее

Хостинг для бота: как без лишних усилий запустить Python бота в Docker-контейнере и почему это удобно

Level of difficultyEasy
Reading time6 min
Views13K

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

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

Читать далее

Бинарные модули для Python

Reading time17 min
Views16K
Python — классный. Мы говорим «pip install» и скорее всего нужная библиотека поставится. Но иногда ответ будет: «compilation failed», потому что есть бинарные модули. Они практически у всех современных языков страдают какой-нибудь болью, потому что архитектур много, что-то нужно собирать под конкретную машину, что-то нужно линковать с другими библиотеками. В целом интересный, но малоизученные вопрос: а как же их делать и какие там проблемы? На этот вопрос постарался ответить Дмитрий Жильцов (zaabjuda) на MoscowPython Conf в прошлом году.


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

  • Native C/C++ Extension
  • SWIG
  • Cython
  • Ctypes
  • Rust

О спикере: Дмитрий Жильцов занимается разработкой больше 10 лет. Работает в компании ЦИАН системным архитектором, то есть несет ответственность за технические решения и контроль сроков. В своей жизни успел попробовать и ассемблер, Haskell, C, а последние 5 лет активно программирует на Python.

C/C++ из Python (ctypes)

Reading time6 min
Views67K
main

Про то как вызывать Python из C написал в прошлой статье, теперь поговорим как делать наоборот и вызывать C/C++ из Python3. Раз начал писать об этом, то раскроем всю тему до конца. Тем более, что ни чего сложного здесь нет тоже.

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

СH32V307 и о переходе на QingKeV4 от WCH. Контроллер прерываний PFIC

Level of difficultyEasy
Reading time5 min
Views1.3K

В продолжении своего предыдущего поста, хочу рассказать о своем переходе на WCH и RISC-V. Поскольку QingKeV4 существует аж в 5-и версиях, то SDK ко всему этому великолепию содержит рудименты и нестыковки. Возможно, кому-то мой опыт сэкономит время и нервы. Начнем с прерываний

Читать далее

Пишем свою Diffusion модель с нуля

Level of difficultyMedium
Reading time12 min
Views12K

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

Меня зовут Юра, я - разработчик, фаундер и ML энтузиаст, также пишу свои заметки в своем ТГ канале. Я решил разобраться и понять, как устроена Diffusion модель внутри, понять ее математику и постараться объяснить и разложить ее на пальцах. Ну и конечно пописать код, который (спойлер) заработал. На гифке изображены примеры итоговых картинок на моей финальной модели.

Если вам тоже интересно, то читайте дальше

Читать далее

SDR радиоприёмник в FPGA плате Марсоход3GW2 (Gowin)

Level of difficultyEasy
Reading time7 min
Views8.5K

Когда-то давно, аж 2013-й год, на Хабре была статья "Простой SDR приёмник на ПЛИС" автора @iliasam. Я попытаюсь повторить этот проект на другой элементной базе: FPGA плата Марсоход3GW2, микросхема Gowin GW1NR-LV9QN88PC6/I5.

Законы Цифровой Обработки Сигналов кажется остаются всё те же, что и раньше. Посмотрим, что у меня получится.

Читать далее

PyTorch — ваш новый фреймворк глубокого обучения

Reading time22 min
Views203K

Gotta Torch?


PyTorch — современная библиотека глубокого обучения, развивающаяся под крылом Facebook. Она не похожа на другие популярные библиотеки, такие как Caffe, Theano и TensorFlow. Она позволяет исследователям воплощать в жизнь свои самые смелые фантазии, а инженерам с лёгкостью эти фантазии имплементировать.


Данная статья представляет собой лаконичное введение в PyTorch и предназначена для быстрого ознакомления с библиотекой и формирования понимания её основных особенностей и её местоположения среди остальных библиотек глубокого обучения.

Fire walk with me

Экскурсия по PyTorch

Reading time17 min
Views51K
Привет, Хабр!

Еще до конца мая у нас выйдет перевод книги Франсуа Шолле "Глубокое обучение на Python" (примеры с использованием библиотек Keras и Tensorflow). Не пропустите!



Но мы, естественно, смотрим в надвигающееся будущее и начинаем присматриваться к еще более инновационной библиотеке PyTorch. Сегодня вашему вниманию предлагается перевод статьи Питера Голдсборо, готового устроить вам долгую прогулку ознакомительную экскурсию по этой библиотеке. Под катом много и интересно.
Читать дальше →

STM32 — грамотно включаемся от кнопки

Level of difficultyEasy
Reading time7 min
Views18K

Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных камней, и в этой статье я расскажу, как на них не попасть.

Читать далее
1
23 ...

Information

Rating
3,095-th
Location
Хацафон, Израиль
Date of birth
Registered
Activity