Search
Write a publication
Pull to refresh
198
0
Сергей Новоградцев @snipsnap

Java разработчик

Send message

Оптимизация нейросетевой платформы Caffe для архитектуры Intel

Reading time22 min
Views10K
Современные программы, претендующие на звание эффективных, должны учитывать особенности аппаратного обеспечения, на котором они будут исполняться. В частности, речь идёт о многоядерных процессорах, например, таких, как Intel Xeon и Intel Xeon Phi, о больших размерах кэш-памяти, о наборах инструкций, скажем, Intel AVX2 и Intel AVX-512, позволяющих повысить производительность вычислений.


Еле удержались, чтобы не пошутить про руссиано)

Вот, например, Caffe – популярная платформа для разработки нейронных сетей глубокого обучения. Её создали в Berkley Vision and Learning Center (BVLC), она пришлась по душе сообществу независимых разработчиков, которые вносят посильный вклад в её развитие. Платформа живёт и развивается, доказательство тому – статистика на странице проекта в GitHub. Caffe называют «быстрой открытой платформой для глубокого обучения». Можно ли ускорить такой вот «быстрый» набор инструментов? Задавшись этим вопросом, мы решили оптимизировать Caffe для архитектуры Intel.
Читать дальше →

youtube-dl, или как скачать видео с YouTube в качестве 1080p и выше

Reading time5 min
Views405K
Видеохостинг YouTube — второй по посещаемости сайт в мире. Его смотрят с умных телевизоров, игровых и телевизионных приставок, настольных компьютеров и ноутбуков, планшетов и смартфонов. Не все из этих устройств требуют одинаковой картинки. Сетевая природа сервиса и потокового видео предполагает, что на сайте должны быть доступны опции просмотра в разном качестве.

Качество картинки на YouTube варьируется от 144p (144 строчки в прогрессивной развёртке) до 8K 4320p. Последнее видео в четыре раза крупнее 4К 2160p, в шестнадцать — 1080p, в тридцать шесть — 720p, который также называют HD.


Мало какой компьютер может проиграть это видео в его полном разрешении, а доступных по цене 8K-мониторов в мире просто нет.

Технология MPEG-DASH разбивает контент на куски, а браузер запрашивает эти сегменты автоматически. Логично хранить и отдавать отдельно видео и звук. У DASH есть жирный плюс: адаптивность воспроизведения.

Несколько лет назад пользователи YouTube заметили введение DASH по тому, что буферизация видео больше не шла до конца ролика, а ограничивалась примерно минутой. Около того же времени другая проблема возникла у скачивающих видео с YouTube. Внезапно обнаружилось, что ролики с качеством 1080p доступны в виде файлов без звука. Сайты-сервисы, которые раньше выдавали ссылки на скачивание видео, отдавали лишь 720p, не выше. Около 1080p стояло «без звука» или «только видео».
Читать дальше →

Статистика для математика

Reading time3 min
Views25K

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

К сожалению, действительно хорошая литература, такая что умела бы предоставить одновременно математически строгие доказательства и понятные интуитивные объяснения, встречается не очень часто. И данные лекции, на мой взгляд, необычайно хороши для математиков, разбирающихся в теории вероятностей именно по этой причине. По ним преподают магистрам в немецком университете имени Кристиана-Альбрехта на программах «Математика» и «Финансовая математика». И для тех, кому интересно, как этот предмет преподается за рубежом, я эти лекции перевел. На перевод у меня ушло несколько месяцев, я разбавил лекции иллюстрациями, упражнениями и сносками на некоторые теоремы. Замечу, что я не профессиональный переводчик, а просто альтруист и любитель в этой сфере, так что приму любую критику, если она конструктивна.

Вкратце, лекции вот о чем:
Читать дальше →

Сделано в МТИ: система контроля версий Gitless

Reading time4 min
Views36K

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

Простыми словами — мудреным приложением было трудно пользоваться. Поэтому в лаборатории Массачусетского Технологического Института взялись за улучшения и отсекли все «проблемные элементы» (ведь то, что для одного проблема, для другого легко может быть преимуществом). Улучшенную и упрощенную версию назвали Gitless. Её разрабатывали с учетом 2400 вопросов, связанных с Git и взятых с сайта разработчиков StackOverflow.

Команда авторов вычленила самые проблемные места в Git, включая две концепции staging и stashing. Затем они предложили изменения, призванные решить известные проблемы.
Читать дальше →

Как работает Git

Reading time19 min
Views153K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

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

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →

Тензорные разложения и их применения. Лекция в Яндексе

Reading time17 min
Views38K
Предыдущая лекция с Data Fest была посвящена алгоритмам, необходимым для построения нового вида поиска. Сегодняшний доклад тоже в некотором смысле про разные алгоритмы, а точнее про математику, лежащую в основе множества из них. О матричных разложениях зрителям рассказал доктор наук и руководитель группы вычислительных методов «Сколтеха» Иван Оселедец.


Под катом — расшифровка и большинство слайдов.

Ускорение библиотеки HeatonResearchNeural (нейросети) в 30 раз

Reading time4 min
Views7.3K
Всем привет! Хочу поделиться небольшой историей допиливания HeatonResearchNeural — библиотеки разнообразных нейросетей. Сразу оговорюсь, что работаю аналитиком, а честным программистом перестал быть лет 10 назад.

Однако у меня есть собственный проект на C#, который развиваю в свободное время. Чтобы не заморачиваться написанием велосипеда когда-то скачал HeatonResearchNeural прикрутил скотчем и спокойно гонял тесты, дорабатывал логику своего кода и т.д. Для максимального ускорения заложил в архитектуру решения параллелизацию выполнения расчетов и глядя на загрузку CPU по 80-90% по телу разливалось приятное хозяйское тепло — все пашут, все при деле!
Читать дальше →

Automatic Relevance Determination или машинное обучение когда данных очень мало

Reading time4 min
Views14K

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


Зачастую ситуация усугубляется еще и тем, что вы без труда можете нагенерить для каждой записи много признаков (чаще всего добавляют полиномы, разницу с предыдущим значением и значением за прошлый год, one-hot-encoding для категориальных признаков и т.п.). Вот только совсем нелегко разобраться, какие из них действительно полезны, а какие только усложняют модель и увеличивают ошибки вашего прозноза.


Для этого вы можете воспользоваться методами байесовой статистики, например, Automatic Relevance Determination.

GPU в облаках

Reading time5 min
Views22K

Нужно построить больше GPU

Deep Learning – одно из наиболее интенсивно развивающихся направлений в области машинного обучения. Успехи исследований в области глубокого (глубинного) обучения вызывают за собой рост количества ML/DL-фреймворков (в т.ч. и от Google, Microsoft, Facebook), имплементирующих данные алгоритмы. За все возрастающей вычислительной сложностью DL-алгоритмов, и, как следствие, за увеличивающейся сложностью DL-фреймворков уже давно не угоняются аппаратные мощности ни настольных, ни даже серверных CPUs.

Выход нашли, и он простой (кажется таким) – использовать для такого типа compute-intensive-задач расчеты на GPU/FPGA. Но и тут проблема: можно, конечно, для этих целей использовать видеокарту любимого ноутбука, но какой русский data scientist не любит быстрой езды NVidia Tesla?

Подходов к владению высокопроизводительными GPU минимум два: купить (on-premises) и арендовать (on-demand). Как накопить и купить – тема не этой статьи. В этой — мы рассмотрим, какие предложения есть по аренде инстансов VM c высокопроизводительными GPU у облачных провайдеров Amazon Web Service и Windows Azure.
Читать дальше →

Бесплатные курсы и книги по науке и инженерии

Reading time4 min
Views59K


Вкладываться в образование — прекрасно. А хорошее образование, как известно, стоит денег. Чтобы их заработать, надо получить образование. Замкнутый круг. Что делать тем, у кого нет наследства и «трастовых фондов», в школе были тройки и сейчас зажглась искра желания погрызть гранит науки?

Учиться бесплатно. Только в мышеловке? Вовсе нет. Часто хорошие идеи даются просто так — за то, чтобы их взяли. Вообще делать деньги на информации — это очень спорный вопрос. Знания должны распространяться и объединятся в динамический пул, если человечество хочет продвинуться в глобальном смысле. Ноосфера, биг дата и прочее. А если все будут сидеть по углам каждый со своей пачкой данных, великих дел не получится. Чтобы не терять времени, хватит читать вступление, переходим к курсам для ученых и инженеров. Ниже — список бесплатных курсов и книг онлайн.
Читать дальше →

Обзор рынка облачных сервисов игр

Reading time23 min
Views276K

Рисунок Гектора Лизаррага

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

И снова про опасность eval()

Reading time6 min
Views121K
Сколько было сломано копий при обсуждении вопроса «Возможно ли сделать eval безопасным?» — невозможно сосчитать. Всегда находится кто-то, кто утверждает, что нашёл способ оградиться от всех возможных последствий выполнения этой функции.
Когда мне понадобилось найти развёрнутый ответ на этот вопрос, я наткнулся на один пост. Меня приятно удивила глубина исследования, так что я решил, что это стоит перевести.

Коротко о проблеме


В Python есть встроенная функция eval(), которая выполняет строку с кодом и возвращает результат выполнения:
assert eval("2 + 3 * len('hello')") == 17

Это очень мощная, но в то же время и очень опасная инструкция, особенно если строки, которые вы передаёте в eval, получены не из доверенного источника. Что будет, если строкой, которую мы решим скормить eval'у, окажется os.system('rm -rf /')? Интерпретатор честно запустит процесс удаления всех данных с компьютера, и хорошо ещё, если он будет выполняться от имени наименее привилегированного пользователя (в последующих примерах я буду использовать clear (cls, если вы используете Windows) вместо rm -rf /, чтобы никто из читателей случайно не выстрелил себе в ногу).
Читать дальше →

Установка Mikrotik Cloud Hosted Router на VPS хостинг Digital Ocean

Reading time5 min
Views60K
… или другой Linux-хостинг.
Сразу оговорюсь, что поскольку мне в процессе всех экспериментов уже поднадоело сносить и заново настраивать дроплет в DO, пример я буду выполнять в VMware ESXi, но на конечный результат это влиять не будет, команды все будут те же самые, в принципе, это применимо к любому облачному VPS хостингу, где у нас есть доступ по SSH.
За основу взят доклад Дмитрия Пичулина deemru на прошедшем 30 сентября MUM в Москве. В отличии от доклада Дмитрия, в данной статье не будет рассматриваться вопросы выбора хостинга и цен на него (в стремлении намутить облачный роутер подешевле), настройки полученного устройства. Рассмотрена будет лишь техническая сторона вопроса и решены пара проблем.
Но обо всём по-порядку..

Python для математических вычислений. Опыт Марка Андреева

Level of difficultyEasy
Reading time4 min
Views90K

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


Мы попытаемся найти в языке функции, которые обычно требуем от математических пакетов. Рассмотрим сильные и слабые стороны идеи использования python вместо MATLAB, Maple, Mathcad, Mathematica.

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

Сравнение аналитических in-memory баз данных

Reading time19 min
Views42K
В последние два месяца лета в управлении хранилищ данных (Data Warehouse, DWH) Тинькофф Банка появилась новая тема для кухонных споров.

Всё это время мы проводили масштабное тестирование нескольких in-memory СУБД. Любой разговор с администраторами DWH в это время можно было начать с фразы «Ну как, кто лидирует?», и не прогадать. В ответ люди получали длинную и очень эмоциональную тираду о сложностях тестирования, премудростях общения с доселе неизвестными вендорами и недостатках отдельных испытуемых.

Подробности, результаты и некое подобие выводов из тестирования — под катом.
Читать дальше →

Введение в анализ данных с помощью Pandas

Reading time3 min
Views243K
Сегодня речь пойдет о пакете Pandas. Данный пакет делает Python мощным инструментом для анализа данных. Пакет дает возможность строить сводные таблицы, выполнять группировки, предоставляет удобный доступ к табличным данным, а при наличии пакета matplotlib дает возможность рисовать графики на полученных наборах данных. Далее будут показаны основы работы с пакетом, такие как загрузка данных, обращение к полям, фильтрация и построение сводных.
Читать дальше →

Что нужно знать, уметь и понимать, чтобы не иметь проблем с поиском работы питонистом

Reading time10 min
Views179K
Язык — лишь малая часть того, что вам нужно знать. Может быть около 5%, а то и меньше.

Эта статья повторяет и дополняет содержание моего выступления «Что отличает джуниора от сеньора или как питонисту не иметь проблем с поиском работы» на последнем MoscowPython Meetup 39. Многие обращались ко мне после выступления с вопросами и я обещал опубликовать статью на Хабре и обсудить в комментариях.

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

no problem

Таки что же?!

Отчет с Moscow Python Meetup 22 сентября

Reading time1 min
Views11K


В конце сентября в нашем офисе состоялся очередной Moscow Python Meetup. И сегодня мы хотим поделиться материалами выступлений, под катом вас ждут презентации и видеозаписи трех докладов.
Читать дальше →

Ультрабюджетная точечная сварка литиевых аккумуляторов дома

Reading time6 min
Views341K
В жизни каждого «радиогубителя» возникает момент, когда нужно сварить между собой несколько литиевых аккумуляторов — либо при ремонте сдохшей от возраста АКБ ноутбука, либо при сборке питания для очередной поделки. Паять «литий» 60-ваттным паяльником неудобно и страшновато — чуть перегреешь — и у тебя в руках дымовая граната, которую бесполезно тушить водой.

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

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

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

Некоторые репозитории в помощь изучающим и преподающим Python и машинное обучение

Reading time13 min
Views64K


Привет сообществу!

Я Юрий Кашницкий, раньше делал здесь обзор некоторых MOOC по компьютерным наукам и искал «выбросы» среди моделей Playboy.

Сейчас я преподаю Python и машинное обучение на факультете компьютерных наук НИУ ВШЭ и в онлайн-курсе сообщества по анализу данных MLClass, а также машинное обучение и анализ больших данных в школе данных одного из российских телеком-операторов.

Почему бы воскресным вечером не поделиться с сообществом материалами по Python и обзором репозиториев по машинному обучению… В первой части будет описание репозитория GitHub с тетрадками IPython по программированию на языке Python. Во второй — пример материала курса «Машинное обучение с помощью Python». В третьей части покажу один из трюков, применяемый участниками соревнований Kaggle, конкретно, Станиславом Семеновым (4 место в текущем мировом рейтинге Kaggle). Наконец, сделаю обзор попавшихся мне классных репозиториев GitHub по программированию, анализу данных и машинному обучению на Python.

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

Information

Rating
Does not participate
Location
Kassel, Hessen, Германия
Registered
Activity