Однажды томным вечером, сидя напротив мелькающей ленты tjournal и попивая ромашковый чай, внезапно обнаружил себя за чтением статьи про советскую лампочку, которая освещала чей-то подъезд уже 80 лет. Да, весьма интересно, но все же я предпочитаю статьи про политику достижения ИИ в игре дум, приключения ракет SpaceX и, в конце концов, — с наибольшим кол-вом просмотров. А какие вообще статьи набирают внушительные рейтинги? Посты размером с твит про какую-то политическую акцию или же талмуды с детальным анализом российской киноиндустрии? Ну что же, тогда самое время расчехлять свой Jupyter notebook и выводить формулу идеальной статьи.
Рубрика «python» - 210
Предсказываем популярность статьи на TJ
2017-04-21 в 10:23, admin, рубрики: data mining, LightGBM, machine learning, python, машинное обучениеКакие языки программирования популярны поздно вечером
2017-04-20 в 17:18, admin, рубрики: C, C#, haskell, javascript, python, stack overflow, Исследования и прогнозы в IT, киев, Москва
Stack Overflow опубликовал очередную подборку интересной статистики о языках программирования и привычках разработчиков. На этот раз они соотнесли статистику визитов на сайт по времени суток и языковые теги вопросов по этим визитам. Получилась интересная картина. Оказывается, некоторые языки более популярны в рабочее время (например, C# и JavaScript), а у других доля заметно растёт вечером (С, Python). Как будто программисты вечером возвращаются домой и занимаются, наконец, любимым делом.
Читать полностью »
Библиотеки для глубокого обучения: Keras
2017-04-20 в 11:09, admin, рубрики: data mining, deep learning, keras, machine learning, neural network, ods, open data science, python, TensorFlow, theano, Блог компании Open Data Science, математика, машинное обучениеПривет! Мы уже говорили про Theano и Tensorflow (а также много про что еще), а сегодня сегодня пришло время поговорить про Keras.
Изначально Keras вырос как удобная надстройка над Theano. Отсюда и его греческое имя — κέρας, что значит "рог" по-гречески, что, в свою очередь, является отсылкой к Одиссее Гомера. Хотя, с тех пор утекло много воды, и Keras стал сначала поддерживать Tensorflow, а потом и вовсе стал его частью. Впрочем, наш рассказ будет посвящен не сложной судьбе этого фреймворка, а его возможностям. Если вам интересно, добро пожаловать под кат.
Как я сделал самый быстрый ресайз изображений. Часть 2, SIMD
2017-04-19 в 16:13, admin, рубрики: avx, AVX2, C, pillow, pillow-simd, python, sse, SSE4, высокая производительность, обработка изображений, оптимизация, производительность, ресайзЭто продолжение цикла статей о том, как я занимался оптимизацией и получил самый быстрый ресайз на современных x86 процессорах. В каждой статье я рассказываю часть истории, и надеюсь подтолкнуть еще кого-то заняться оптимизацией своего или чужого кода. В предыдущих сериях:
→ Часть 0
→ Часть 1, общие оптимизации
В прошлый раз мы получили ускорение в среднем в 2,5 раза без изменения подхода. В этот раз я покажу, как применять SIMD-подход и получить ускорение еще в 3,5 раза. Конечно, применение SIMD для обработки графики не является ноу-хау, можно даже сказать, что SIMD был придуман для этого. Но на практике очень мало разработчиков используют его даже в задачах обработки изображений. Например, довольно известные и распространенные библиотеки ImageMagick и LibGD написаны без использования SIMD. Отчасти так происходит потому, что SIMD-подход объективно сложнее и не кроссплатформенный, а отчасти потому, что по нему мало информации. Довольно просто найти азы, но мало детальных материалов и разбора реальных задач. От этого на Stack Overflow очень много вопросов буквально о каждой мелочи: как загрузить данные, как распаковать, запаковать. Видно, что всем приходится набивать шишки самостоятельно.
Чат-бот для ВКонтакте на Python на Callback API
2017-04-19 в 16:00, admin, рубрики: api vk, python, Вконтакте APIЧат-боты стали уже очень распространенным явлением, и появляются во всех мессенджерах ежедневно.
В этой статье по шагам разберем создание бота с набором простых команд и узнаем, как в дальнейшем можно расширить его функционал. Статья будет полезна для самых новичков, которые никогда не пробовали создавать чат-ботов.
Читать полностью »
Обманываем время: о тестировании с «подставным» временем на Linux и Docker
2017-04-18 в 11:49, admin, рубрики: docker, faketime, linux, python, time, Разработка под Linux, системное время, Тестирование веб-сервисовПри разработке очередного бота для группы в Telegram у меня возникла необходимость испытать его при различных значениях системного времени. Этот бот в конце каждого дня отправляет (или, в зависимости от ряда условий, не отправляет) сообщение в чат и производит манипуляции с некоторыми предыдущими своими сообщениями (или, опять же, не производит).
Менять системное время глобально ой, как не хотелось. Муторно, плюс у меня в ней столько всего понаставлено, не дай Б-г что-то заглючит (вряд ли, но мало ли). Думал запустить VirtualBox, но уж больно лень было ставить «чистую» Убунту, расшаривать папки, и т. д., тем более что этот вариант жрёт, как троглодит серьёзно потребляет машинные ресурсы.
Но буквально недавно я начал ковырять Docker. «У него просто обязан быть механизм контроля системного времени внутри контейнера», — подумал я. Рассмотрим, что же в результате вышло.
Жирные программы — факторы скорости
2017-04-17 в 13:31, admin, рубрики: C, python, высокая производительность, производительность, Совершенный код, тестированиеКартинка из фильма «Размер имеет значение», 2009
Данная статья была начата в апреле 2016г в результате того, что компьютер опять стал работать медленнее, чем я щелкаю мышкой. Собственно, она является компиляцией многих тестов (некоторых еще с 2010г) и обсуждений с моим участием. Ее нельзя назвать полностью законченной, поскольку это не окончательные выводы, а некие промежуточные точки, показывающие на что обратить внимание и куда копать дальше.
Название частично позаимствовано из статьи Никлауса Вирта «Долой „жирные“ программы», которой в 2016г было ровно 10 лет, и актуальности она не утратила — а скорее вышла на новый уровень, кто не знаком — почитайте.
Рассмотрим разные аспекты, влияющие на производительность систем и программ.
Языковой аспект
Аспекты памяти
Аспекты реального мира
Неязыковые факторы
Аспект человеческого фактора
Читать полностью »
Открытый курс машинного обучения. Тема 8. Обучение на гигабайтах с Vowpal Wabbit
2017-04-17 в 11:02, admin, рубрики: data mining, machine learning, mlcourse_open, ods, open data science, python, sgd, vowpal wabbit, Алгоритмы, Блог компании Open Data Science, машинное обучениеВсем привет!
Вот мы постепенно и дошли до продвинутых методов машинного обучения, сегодня обсудим, как вообще подступиться к обучению модели, если данных гигабайты и десятки гигабайт. Обсудим приемы, позволяющие это делать: стохастический градиентный спуск (SGD) и хэширование признаков, посмотрим на примеры применения библиотеки Vowpal Wabbit. Домашнее задание будет как на реализацию SGD-алгоритмов, так и на обучение классификатора вопросов на StackOverflow по выборке в 10 Гб.
Поехали!
Data science и качественный код
2017-04-17 в 9:53, admin, рубрики: big data, data mining, data science, machine learning, python, машинное обучениеОбычно модели машинного обучения строят в jupyter-ноутбуках, код которых выглядит, мягко говоря, не очень — длинные простыни из лапши выражений и вызовов "на коленке" написанных функций. Понятно, что такой код почти невозможно поддерживать, поэтому каждый проект переписывается чуть ли не с нуля. А о внедрении этого кода в production даже подумать страшно.
Поэтому сегодня представляем на ваш строгий суд превью библиотеки по работе с датасетами и data science моделями. С ее помощью ваш код может выглядеть так:
my_dataset.
load('/some/path').
normalize().
resize(shape=(256, 256, 256)).
random_rotate(angle=(-30, 30))
random_crop(shape=(64, 64, 64))
for i in range(MAX_ITER):
batch = my_dataset.next_batch(BATCH_SIZE, shuffle=True)
# обучаем модель, подавая ей батчи с данными
В этой статье вы узнаете об основных классах и методах, которые помогут сделать ваш код простым, понятным и удобным.
Введение в машинное обучение с tensorflow
2017-04-17 в 9:19, admin, рубрики: python, TensorFlow, Алгоритмы, машинное обучение, нейронные сетиЕсли мы в ближайшие пять лет построим машину с интеллектуальными возможностями одного человека, то ее преемник уже будет разумнее всего человечества вместе взятого. Через одно-два поколения они попросту перестанут обращать на нас внимание. Точно так же, как вы не обращаете внимания на муравьев у себя во дворе. Вы не уничтожаете их, но и не приручаете, они практически никак не влияют на вашу повседневную жизнь, но они там есть.
Сет Шостак
Введение.
Серия моих статей является расширенной версией того, что я хотел увидеть когда только решил познакомиться с нейронными сетями. Он рассчитан в первую очередь на программистов, желающих познакомится с tensorflow и нейронными сетями. Уж не знаю к счастью или к сожалению, но эта тема настолько обширна, что даже мало-мальски информативное описание требует большого объёма текста. Поэтому, я решил разделить повествование на 4 части:
- Введение, знакомство с tensorflow и базовыми алгоритмами (эта статья)
- Первые нейронные сети
- Свёрточные нейронные сети
- Рекуррентные нейронные сети
Изложенная ниже первая часть нацелена на то, чтобы объяснить азы работы с tensorflow и попутно рассказать, как машинное обучение работает впринципе, на примере tensorfolw. Во второй части мы наконец начнём проектировать и обучать нейронные сети, в т.ч. многослойные и обратим внимание на некоторые нюансы подготовки обучающих данных и выбора гиперпараметров. Поскольку свёрточные сети сейчас пользуются очень большой популярность, то третья часть выделена для подробного объяснения их работы. Ну, и в заключительной части планируется рассказ о рекуррентных моделях, на мой взгляд, — это самая сложная и интересная тема.
Читать полностью »