Как стать автором
Обновить
24
0

Пользователь

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

Нейросеть для разработчиков C++

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

Написал библиотеку для обучения нейронной сети. Кому интересно, прошу.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии30

Функция Math.Sin (double) для GPU

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

Предисловие


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

Автор не ставил перед собой цель превзойти стандартную функцию System.Math.Sin() (C#) и ее не достиг.
Читать дальше →
Всего голосов 13: ↑11 и ↓2+9
Комментарии14

Microsoft передала две трети своих патентов Open Invention Network (OIN)

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


Open Invention Network (OIN) — организация, которая владеет патентами на программное обеспечение экосистемы GNU/Linux, она же предоставляет право на их бесплатное использование. На днях корпорация Microsoft передала этой организации около 60 тысяч собственных патентов из 90 тысяч имеющихся.

Представители Microsoft заявили, что остальные 30 тысяч патентов фактически не существуют, поскольку они находятся в процессе обработки соответствующими компетентными структурами. По этой причине передать их нельзя, но после завершения обработки они даже будут предоставлены партнеру компании.
Читать дальше →
Всего голосов 38: ↑34 и ↓4+30
Комментарии6

Построение функций в консоли. Часть 1

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

У большинства наверняка возникнет резонный вопрос: зачем?

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

Но если вдруг вам дали такое задание или вы просто очень любите программирование, как я, то вам предстоят увлекательные — а временами и не очень — часы написания программы и ее отладки)

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

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

Читать дальше →
Всего голосов 19: ↑16 и ↓3+13
Комментарии8

Символьное решение линейных дифференциальных уравнений и систем методом преобразований Лапласа c применением SymPy

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

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

В данной публикации предлагаю рассмотреть функции прямого и обратного преобразования Лапласа из библиотеки SymPy, которые позволяют использовать метод Лапласа для решения дифференциальных уравнений и систем средствами Python.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии14

Что нужно запомнить программисту, переходящему на Python

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

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


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


  • Билл Любанович «Простой Python. Современный стиль программирования»
  • Дэн Бейдер «Чистый Python. Тонкости программирования для профи»
  • Бретт Слаткин «Секреты Python: 59 рекомендаций по написанию эффективного кода»

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


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

Читать дальше →
Всего голосов 46: ↑41 и ↓5+36
Комментарии33

Мемоизация дефолтным kwarg в Python

Время на прочтение3 мин
Количество просмотров8.1K
Вот так можно мемоизировать питоновскую функцию:

def memo_square(a, cache={}): 
    if a not in cache: 
        cache[a] = a*a 
    return cache[a]

Приём незаслуженно малоизвестный, так что под катом мы разберём, как он работает и для чего нужен.
Читать дальше →
Всего голосов 16: ↑11 и ↓5+6
Комментарии14

Дайджест Университета ИТМО: новые исследования, опыт выпускников и международные проекты

Время на прочтение5 мин
Количество просмотров5.9K
Сегодня мы представляем вашему вниманию материалы о проектах выпускников и специалистов Университета ИТМО. Темы подборки — Computer Science, городская инфраструктура и карьера в ИТ.

Всего голосов 20: ↑18 и ↓2+16
Комментарии1

Обнаружение лиц на видео: Raspberry Pi и Neural Compute Stick

Время на прочтение12 мин
Количество просмотров16K
Около года назад компания Intel Movidius выпустила устройство для эффективного инференса сверточных нейросетей — Movidius Neural Compute Stick (NCS). Это устройство позволяет использовать нейросети для распознавания или детектирования объектов в условиях ограниченного энергопотребления, в том числе в задачах робототехники. NCS имеет USB-интерфейс и потребляет не более 1 ватта. В этой статье я расскажу об опыте использования NCS с Raspberry Pi для задачи обнаружения лиц в видео, включая как обучение Mobilenet-SSD детектора, так и его запуск на Raspberry.

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


Читать дальше →
Всего голосов 19: ↑19 и ↓0+19
Комментарии11

«Я три года борюсь с синдромом самозванца» — 10 вопросов программисту, выпуск 7

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



Антон Рубановскому (tunikov) 29 лет, он из Питера. Еще три года назад Антон был нулёвым гуманитарием-раздолбаем, и в поисках денег попал в ИТ. «Последние несколько лет моей жизни проходят в погоне за знаниями. Надеюсь, что когда-нибудь наступит момент, когда я смогу выдохнуть и сказать: «ну все, я — программист!».

Антон начал с фронтенда, потом полез в серверную часть, изучил Django и написал на нем первый сайт. «Это немного приблизило меня к самоощущению программиста, но осталось много всего другого, что я не знал. Например, незакрытый гештальт по Java (начинал свое обучение я именно с него, но потом как-то незаметно перешел в веб). Я сдал экзамен в Oracle и стал лучше понимать принципы ООП. Но выяснилось, что этого мало — теперь планирую сдавать OCP и, возможно, Java EE».

За относительно короткий срок Антон успел побывать фронтендером, бэкендером и мобильным разработчиком, освоить ФП, поработать и в продуктовых компаниях, и в аутсорсных корпорациях. Сейчас он Senior Developer в Luxoft.
Читать дальше →
Всего голосов 50: ↑38 и ↓12+26
Комментарии140

Pattern matching в C# 7

Время на прочтение7 мин
Количество просмотров33K
В C# 7 наконец-то появилась долгожданная функция под названием «сопоставление с образцом». Если вы знакомы с функциональными языками, такими как F#, то эта функция в том виде, в котором она существует на данный момент, может вас слегка разочаровать. Но даже сегодня она способна упростить код в самых разных случаях. Подробнее под катом!

Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии9

Стивен Вольфрам: Воспоминания про Стива Джобса

Время на прочтение6 мин
Количество просмотров9.7K
Этим вечером мне, как и миллионам людей, невыносимо грустно слышать о смерти Стива Джобса. За последние 25 лет я очень многому научился у Джобса, я считал его своим другом и невероятно гордился этим. В самом деле, он уже так или иначе сделал вклад в три моих самым важных проекта: Mathematica, A New Kind of Science (Наука нового типа) и Wolfram|Alpha.

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

image

И несколько месяцев после нашей первой встречи мы только и делали, что обсуждали с ним Mathematica. Вообще-то тогда еще проект не имел такого названия, и одним из самых больших вопросов как раз и был вопрос о том, как его назвать. Сначала он назывался Omega (да, как Альфа), а потом — PolyMath. По мнению Стива это были отстойные названия. Я дал ему свой список с вариантами названий и настоял на том, чтобы он предложил свои. Некоторое время он молчал. А потом однажды вдруг сказал: “Ты должен назвать свой проект Mathematica”.
Всего голосов 21: ↑18 и ↓3+15
Комментарии9

Анализ процесса загрузки ядра Linux

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

Пока Леонид готовится к своему первому открытому уроку по нашему курсу «Администратор Linux», мы продолжаем рассказывать про загрузку ядра Linux-а.

Поехали!

Понимание работы системы, функционирующей без сбоев — подготовка к устранению неизбежных поломок

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

С одной стороны, процесс загрузки на удивление прост. Ядро операционной системы (kernel) запускается однопоточно и синхронно на одном ядре (core), что может показаться понятным даже жалкому человеческому уму. Но как запускается само ядро ОС? Какие функции выполняют initrd (диск в оперативной памяти для начальной инициализации) и загрузчики? И постойте, почему всегда горит светодиод в Ethernet-порте?

Читать дальше →
Всего голосов 26: ↑16 и ↓10+6
Комментарии8

Правила разработки в Яндекс.Здоровье

Время на прочтение6 мин
Количество просмотров27K
Многим кажется, что Яндекс — это большая монолитная корпорация с жёсткими регламентированными процессами, однако это не так. Мы постоянно ищем новые направления, начинаем новые проекты и пробуем новые рынки. Сервис для онлайн-консультаций с врачом "Яндекс.Здоровье" — один из классических внутренних стартапов.

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

Disclaimer:
У стартапа есть свои особенности. Основная наша задача – делать максимальное количество экспериментов в единицу времени и выдавать продуктовые фичи с максимально возможной скоростью. При этом мы должны держать качество продукта на таком уровне, чтобы за него было не стыдно. [Место для флейма про отсутствующую у некоторых совесть]. Замечу, что высокая скорость доставки фич подразумевает в том числе поддержание достаточно высокого качества кода. Иначе продукт рано или поздно захлёбывается в багах.

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



Качество кода и архитектура


  • Мы минимизируем время доведения фичи до продакшна при сохранении приемлемого качества.
  • Любая задача предполагает два решения: быстрое и правильное. Для любой фичи мы продумываем оба варианта так, чтобы была возможность апгрейдить быстрое решение до правильного, делая минимум ненужной работы «на выброс». Выкатив быстрое решение, некоторое время смотрим и понимаем, нужно ли правильное.
  • Критично. Зачастую, разница по времени между тем, чтобы «решить первым попавшимся способом, забив костыль» и «решить красиво и аккуратно» – десять минут. Поэтому мы всегда думаем, перед тем как писать.

Читать дальше →
Всего голосов 74: ↑70 и ↓4+66
Комментарии72

Intel PAC c FPGA Stratix 10 SX — ускоритель для больших задач

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

FPGA Intel Stratix 10 SX/GX, появившиеся в продаже 2 года назад, стали новым словом в области вентильных матриц. Выполненные по минимальному на тот момент 14-нм техпроцессу, они были в два раза производительнее и на 70% энергоэффективнее предшественников. Однако чтобы реализовать все заложенные в FPGA Intel возможности, нужна такая же продвинутая «обертка». Аппаратно-программный конструктив, выпускаемый Intel для использования Stratix в хост-системах, называется Programmable Acceleration Card (PAC) — его очередная версия анонсирована в сентябре этого года.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии35

Обучение и тестирование нейронных сетей на PyTorch с помощью Ignite

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

Привет, Хабр, в этой статье я расскажу про библиотеку ignite, с помощью которой можно легко обучать и тестировать нейронные сети, используя фреймворк PyTorch.


С помощью ignite можно писать циклы для обучения сети буквально в несколько строк, добавлять из коробки расчет стандартных метрик, сохранять модель и т.д. Ну, а для тех кто переехал с TF на PyTorch, можно сказать, что библиотека ignite — Keras для PyTorch.


В статье будет детально разобран пример обучения нейронной сети для задачи классификации, используя ignite


Читать дальше →
Всего голосов 36: ↑36 и ↓0+36
Комментарии4

Python: метапрограммирование в продакшене. Часть первая

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

Многие считают, что метапрограммирование в Python излишне усложняет код, но если использовать его правильно, то можно быстро и элегантно реализовать сложные паттерны проектирования. Помимо этого, такие известные Python-фреймворки, как Django, DRF и SQLAlchemy, используют метаклассы, чтобы обеспечить легкую расширяемость и простое переиспользование кода.



В этой статье расскажу, почему не стоит бояться использовать метапрограммирование в своих проектах и покажу, для каких задач оно подходит лучше всего. Еще больше о возможностях метапрограммирования можно узнать на курсе Advanced Python.

Читать дальше →
Всего голосов 30: ↑30 и ↓0+30
Комментарии7

Алиса выплатит более миллиона рублей до конца года. Новый конкурс и рекомендации Яндекса для разработчиков навыков

Время на прочтение2 мин
Количество просмотров17K
Сегодня Алисе исполняется год. За прошедшие месяцы она обучилась множеству новых навыков, большая часть из которых была создана сторонними разработчиками с помощью платформы Диалоги. Более 28 тыс. навыков уже опубликованы и доступны всем пользователям Алисы.

В честь первого дня рождения мы запускаем Премию Алисы. Каждый месяц мы будем выбирать по 5 лучших навыков от независимых разработчиков и выплачивать им денежные вознаграждения. Если вы уже разрабатываете свои навыки или только планируете начать, то приглашаем под кат – там вас ждут рекомендации нашей команды.



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

Всего голосов 35: ↑32 и ↓3+29
Комментарии28

Встреча .NET сообщества на CLRium #4 + онлайн

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

Вы любите продуктовые доклады? Я — нет. А вы любите доклады, не относящиеся к теме конференции? Я — категорически нет. Складывается ощущение что я плачу за чужие амбиции и отсутствие контента. Потому мы делаем CLRium 4: где собираем все самое последнее, полезное… И самое главное — кишочки!


Теперь, помимо докладов будет жаркая дискуссия между спикерами по возможностям C# 8.0, которые полны неоднозначных моментов. И поверьте, будет жара: я многие моменты не приемлю, а вот второй спикер, Александр Кугушев уверяет что они так полезны, что хоть завтра — в прод. Наталия Цвилих придерживается смешанной точки зрения… Интереснейшая получится беседа, я вам обещаю.


Почитать и зарегистрироваться



cool Примеры статей и полный список тем выступлений — под катом
Читать дальше →
Всего голосов 11: ↑10 и ↓1+9
Комментарии10

Принцип наименьшего действия в аналитической механике

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

Предыстория




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

Задача о движении шарика

Не все так просто


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

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

image

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

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

Так в чем же, с моей точки зрения, проблема?
Читать дальше →
Всего голосов 33: ↑31 и ↓2+29
Комментарии80

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность