Как стать автором
Обновить
60
0
Андрей @xaoc80

Разработчик программного обеспечения

Отправить сообщение

Оптимизация гиперпараметров за 5 секунд?

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров4.6K

Пока люди с самыми малыми вычислительными машинами в пустую тратят время на перебор гиперпараметров внутри библиотеки Scikit-learn – настоящие гении тайм-менеджмента выбирают TPE и Optuna. 

В этой статье мы рассмотрим самые популярные методы оптимизации Grid.Search и Random.Search, принципы Байесовской/вероятностной оптимизации, а также TPE в Optuna. В конце прописали небольшой словарик с функциями, атрибутами и объектами фреймворка, а также привели наглядный пример использования. 

Читать далее
Всего голосов 7: ↑5.5 и ↓1.5+4
Комментарии6

Небольшая щепотка ультразвуковых чудес

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров9.5K
Картинка Freepik

Несмотря на свою практически неслышимость и незримость, ультразвук имеет множество применений в современной жизни. В связи с этим мы и рассмотрим некоторые весьма любопытные его реализации, вдвойне интересные ещё с той точки зрения, что они содержат полный набор исходников проектов, что позволяет любому желающему испытать свои силы в реализации описанного. Итак…
Читать дальше →
Всего голосов 68: ↑65.5 и ↓2.5+63
Комментарии23

Энциклопедия контроллеров и обучающий проект (на Хабре)

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


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

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

Настало время как-то систематизировать эту информацию, прокомментировать и поделиться своими мыслями на эту тему. А в практическом плане этот каталог (мини-энциклопедию) можно использовать для выбора DIY контроллеров для своих проектов или, учитывая опубликованные примеры кода и переводы туториалов, как обучающее пособие по их программированию.

Итак…
Читать дальше →
Всего голосов 59: ↑59.5 и ↓-0.5+60
Комментарии11

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Уровень сложностиСредний
Время на прочтение45 мин
Количество просмотров136K

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Всего голосов 506: ↑498 и ↓8+490
Комментарии351

FinRL: Библиотека глубокого обучения с подкреплением для автоматизированной торговли акциями

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.2K

Глубокое обучение с подкреплением (Deep Reinforcement Learning - DRL) является эффективным подходом в количественных финансах. Однако обучение торгового агента DRL, который бы решал, где торговать, по какой цене и в каком количестве, сопряжено с ошибками, а так же со сложной разработкой и отладкой.

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

Читать далее
Всего голосов 23: ↑22 и ↓1+21
Комментарии19

На помойку? Никак нет! Пишем нативные приложения для дешевых китайских телефонов

Уровень сложностиСредний
Время на прочтение23 мин
Количество просмотров17K
image

Если сейчас приехать в пункт приема металлолома, то можно обнаружить просто огромные кучи различных телефонов и прочих электронных «отходов», которые стоят под открытым небом и ждут, когда придёт их черёд окончательного разложения. Однако при ближайшем рассмотрении выясняется, что многие девайсы оказываются полностью рабочими даже после недельного лежания под палящим солнцем и проливными дождями, а сдали их в чермет по причинам «не нужен, надоел, купил новый» и т. п. Я не считаю это правильным, ведь даже в простые кнопочные звонилки имеется возможность вдохнуть новую жизнь, если знать один интересный, но малоизвестный факт: для них можно писать нативные приложения на C и использовать железо телефона в своих целях. А это, на минуточку, как минимум: дисплей с подсветкой, вибромотор, динамик, клавиатура и GSM-радиомодуль с возможностью выхода в сеть. Сегодня мы с вами: узнаем, на каких аппаратных платформах работают китайские телефоны, какие существуют программные платформы и где взять для них SDK, а в практической части мы напишем 2D-игру с нуля, которая будет работать на многих китайских кнопочниках. Интересно? Тогда жду вас под катом!
Читать дальше →
Всего голосов 119: ↑117 и ↓2+115
Комментарии86

Создаем свою STL-совместимую реализацию std::allocator с лучшей производительностью

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

Реализация защиты от сбоев из-за фрагментации кучи и повышение скорости выполнения с помощью STL-альтернативы std::allocator, работающей с блоками памяти фиксированного размера.

В этой статье описывается реализация STL-совместимого аллокатора, ориентированного на выделение и высвобождение блоков памяти фиксированного размера. Предложенный аллокатор предотвращает сбои, вызванные фрагментированной кучей, и обеспечивает стабильное время выполнения выделения/высвобождения памяти. Моей главной целью при создании stl_allocator было устранение ошибок памяти. Вдобавок использование STL-совместимого блочного аллокатора открывает возможность использования функций стандартной библиотеки шаблонов (STL) C++ в проектах, в которых иначе это было бы невозможно.

Читать далее
Всего голосов 18: ↑14 и ↓4+10
Комментарии11

Информация об информации. Энтропия Шеннона, демон Максвелла и предел Ландауэра

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

Информация – одно из самых неоднозначных и неопределённых понятий в науке и философии. Для гуманитария это любые сведения, которые можно запомнить и передать в устной или письменной форме. Для математика это абстрактная сущность, сохраняющаяся при вычислительном изоморфизме. Для физика-теоретика это набор квантовых чисел, характеризующих состояние элементарной частицы. Для программиста это цифровые данные, которые можно представить в двоичном коде и измерить в битах. Для философа-материалиста это отражение многообразия окружающего мира с помощью знаков и сигналов. Для философа-идеалиста это нематериальная, неизмеримая и нелокальная сущность, что-то связанное с духом или сознанием. Для эзотериков это некая метафизическая субстанция или информационное поле. Что же такое информация на самом деле? В данной лекции я покажу, что информация – физическая, объективная, измеряемая величина, в которой нет ничего субъективного и мистического. Заодно мы разберёмся, что такое энтропия по Шеннону, насколько избыточен естественный язык, в чём заключается принцип Ландауэра и обладает ли информация массой.

Читать далее
Всего голосов 47: ↑45 и ↓2+43
Комментарии166

Поговорим об оптимизирующих компиляторах. Сказ восьмой: размотка циклов

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров8.7K

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

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

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

Читать далее
Всего голосов 55: ↑55 и ↓0+55
Комментарии6

Как оптимизировать код на С для x86-процессоров: подсистема кэша и памяти, инструкции AVX-512

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

Меня зовут Андрей Бакшаев, я ведущий инженер-программист в YADRO. Моя команда занимается разработкой и оптимизацией математических библиотек под архитектуру x86. До этого я 15 лет работал в Intel. Значительная часть моих задач заключалась в том, чтобы реализовывать некоторые алгоритмы обработки изображений и сигналов в довольно известной математической библиотеке IPP, максимально эффективно используя возможности процессоров. Я также исследовал производительность этих алгоритмов в процессорах на ранней стадии проектирования. 

В статье я поделюсь своим опытом оптимизации низкоуровневого кода на языке C. Рассмотрим подсистему кэша и памяти процессоров и новые инструкции AVX-512. Разберем пример ускорения копирования байтового массива данных и посмотрим, как векторизованный код позволяет сократить время работы широко используемого алгоритма замены байтов по таблице с 619 до 34 мс, то есть примерно в 18 раз. 

Читать далее
Всего голосов 54: ↑51 и ↓3+48
Комментарии23

Простой комплект для изучения сантиметровых радиоволн (СВЧ)

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

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

Читать далее
Всего голосов 125: ↑124 и ↓1+123
Комментарии21

C++ Дайджест №2 (21 августа 2023 – 3 сентября 2023)

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров7.2K

Привет, Хабр! Сегодня я хочу вам представить подборку интересных новостей и материалов из мира C++ за последние две недели.

Приятного чтения!

Читать далее
Всего голосов 28: ↑27 и ↓1+26
Комментарии0

Почти одноплатник за 400 рублей: как применить дешёвый ТВ-стик 10-летней давности?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров39K
image

Официальная цена на последнюю модель Raspberry Pi составляет около 40$ за штучку. Однако купить её за такую цену невозможно, перекупы накручивают огромные ценники за одноплатники, основным преимуществом которых должна быть цена. И даже альтернативы от китайских друзей в виде Orange Pi или Banana Pi стоят как минимум 3-4 тысячи рублей, что по карману может быть не каждому. Но сейчас на барахолках можно найти старые и дешевые ТВ-стики по совершенно смешным ценам: 2-4$ за штучку, иногда даже с пультом и всеми кабелями. Почему бы не попробовать использовать их в качестве доступных одноплатников? Предлагаю попробовать.
Читать дальше →
Всего голосов 96: ↑92 и ↓4+88
Комментарии93

Теорема Байеса для чайников

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

Теорема (формула) Байеса позволяет выяснить вероятность события при условии, что произошло связанное с ним другое событие.

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

Читать далее
Всего голосов 24: ↑23 и ↓1+22
Комментарии35

Описательная статистика перформанс-распределений

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

Нужна ли разработчику математика? Если анализировать замеры производительности, то матстатистика понадобится. Но оказывается, о ней полезно знать не совсем то, что в учебниках. А что тогда?

Андрей Акиньшин @DreamWalker поговорил об этом в докладе на нашей конференции Heisenbug. И теперь, пока мы готовим следующий Heisenbug (где тоже будут доклады о производительности), решили опубликовать текстовую версию его выступления (а для тех, кому удобнее другие форматы, прикрепляем видеозапись и слайды). Предупреждаем: много букв, цифр, графиков и формул!

Читать далее
Всего голосов 51: ↑51 и ↓0+51
Комментарии2

Неожиданная эффективность условных вероятностей

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

В последнее время я решил заняться задачами по теории вероятностей, потому что мне кажется, получение знаний в этой сфере принесёт большую пользу. Я нашёл ключ, часто использующийся для решения многих из них: накладываем условие на промежуточное состояние, а затем отдельно вычисляем значение этого промежуточного состояния. Это превращает очень сложные задачи в такие, где решение практически очевидно. [Однако в таком случае мы иногда обмениваем эффективность на простоту.]

Такой подход был полезен для решения задачи о днях рождения в очереди, и в статье я приведу ещё три примера, в которых это проявляется. Если задача покажется вам неинтересной, перейдите к следующей, они все разные.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии9

Как добавить в датасет Microsoft COCO свои классы и обучить модель YOLOX

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

В интернете достаточно статей на тему «как обучить custom dataset на yolo».
Что скрывается за этими словами?

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

Есть конечно, свои нюансы от yolo к yolo (которые уже определяются семействами в своих версиях, например, той же yolov5 порядка десяти вариантов моделей), но, в целом, порядок действий такой.

Все так. Однако модель, обученная на собственном датасете, будет определять только те классы, которые в нее заложили. Например, только дым и огонь.
Читать дальше →
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

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

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

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

Ознакомиться
Всего голосов 32: ↑31 и ↓1+30
Комментарии9

Зоопарк ML-моделей или лучший справочник на Хабре

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

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

Меня зовут Ирина, я работаю ML инженером в Brand Analytics. Моя работа тесно связана с NLP, ведь мы ежедневно получаем огромное количество текстовых данных со всего интернета. Сегодня я хочу поговорить о теме, которая беспокоила меня еще с тех времен, когда я только начала изучать SOTA-решения в задачах обработки естественного языка.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии5

Почему аспирантура — зло

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

Вам 20 лет. Вы заканчиваете универ по какой-нибудь прекрасной специальности вроде "Программной инженерии". Вы учитесь на все пятерки, пишете научные статьи, получаете академическую и еще какую-нибудь именную стипендию с крутым названием, ездите по студенческим конференциям и олимпиадам, привозя оттуда призы и охапки мерча. Футболку с последнего чемпионата по программированию вы носите, не снимая (зимой - прямо поверх свитера), и все ваши канцтовары отмечены логотипом Microsoft.

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

Читать далее
Всего голосов 237: ↑216 и ↓21+195
Комментарии481

Информация

В рейтинге
4 329-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность