Spark in me - Internet, data science, math, deep learning, philo

snakers4 @ telegram, 1182 members, 1225 posts since 2016

All this - lost like tears in rain.

Internet, data science, math, deep learning, philosophy. No bs.

Our website
Our chat
DS courses review

snakers4 (Alexander), January 03, 07:09

Some controversial stuff about Docker

Hold on to your containers...


DevOps’ish 056: Is Docker Dead, Tech Bros, Kubernetes, Tools Galore, and More!

The end of 2017 is upon us. Whether your 2017 was amazing or terrible I wish you all the best in 2018. I have very mixed feelings about…

snakers4 (Alexander), January 03, 05:45

AI in 2018 for developers

Hi again! In last article I tried to show my vision on what research areas are maturing and can grow big this year. Research is cool, but…

snakers4 (Alexander), January 02, 10:02

A nice repo with paper summaries (2-3 pages per paper)





Summaries of machine learning papers

snakers4 (Alexander), January 02, 07:51

I am doing a massive read-thru and summary notes on 20+ GAN-related papers. Should I publish my notes as an article, or as a very long series of channel posts?

Article – 42

👍👍👍👍👍👍👍 68%

What are GANs? – 13

👍👍 21%

Posts – 4

👍 6%

I do not care about GANs – 3

👍 5%

👥 62 people voted so far.

snakers4 (Alexander), January 02, 04:50

Hacks for training GANs





ganhacks - starter from "How to Train a GAN?" at NIPS2016

snakers4 (Alexander), January 02, 04:45

My lazy bones remarks in GAN lessons. Really good stuff though. Definitely a must read for GANs, but the actual code part and bcolz part can be done easier in pure pytorch with multiple workers. part 2, lesson 3 - generative models

- Video

- Wiki

- Forum

- Code is shared here -

Key insights:

- Everything that works on whole imagenet is quite good

- Image2seq and super-resolution work awesomely well

- Generative models <> GANs, GANs usually can be added to any generative model

- tqdm - is the best progress bar ever

- Keras + Jupiter is more or less quicker for experimenting than Pytorch, but less flexible

overall and much less production ready

Bcolz and Img2seq

- their notebook -

- bcolz iterator for large datasets if the dataset does not fit in memory -

-- allows iterating over bcolz stored on the disk

-- I see no real benefit over just iterating files in several threads

-- Maybe it would be just better to work with in-memory bcolz arrays (say bcols boasts in-memory compression + large RAM will be a good solution)?

-- for my taste this is overengineering - simple multi-threaded pillow thumbnail + milti-threaded dataset class would do the job (though may be useful for a more general application or for much more data - terabytes)

-- as for video and terabytes of data another approach works - just itemize the data (1 item = .npy file) and then just use threaded workers to read it

- examples are cool, they know about Pillow SIMD, but do not know about pillow's thumbnail method

- you can use gensim to easily get word2vec vectors

- Pillow SIM is 600% faster Pillow -


- cosine distance is a usual choice for high dimension spaces


- notebook -

- superresolution with FCN

- all imagenet

- how to write your one train loops in keras

GANs (worthy tips, paper review will come later)

- their notebook -

- NN can learn to ignore black borders, but better just avoid them

- for ordinary GANs loss functions do not make sense

- write your own generator

- train a D a "little bit" at first

- freeze D and unfreeze G, train generator (G) with frozen discriminator (D), freeze G and

unfreeze D, train D with frozen G, repeat

- Wasserstein GAN paper - is a MASSIVE break-through

- D vs G batches is flexible (as per paper)

- For WG training curves make sense

Pytorch hacks

- underscore operators

save memory

- pre-allocate memory

- saves time

- good weight initilization boilerplate (I mostly used Imagenet, so I avoided facing it)

def weights_init(m):

if isinstance(m, (nn.Conv2d, nn.ConvTranspose2d)):, 0.02)

elif isinstance(m, nn.BatchNorm2d):, 0.02)



Lesson 10: Cutting Edge Deep Learning for Coders
A surprising result in deep learning is that models created from totally different types of data, such as text and images, can learn to share a consistent fe...

snakers4 (Alexander), January 02, 04:01

Interesting dataset with room layouts (a lot of them)




Pillow-SIMD is a Pillow fork, that claims 3-6x faster performance on CPU using same resources



It claims to be this easy

$ pip uninstall pillow

$ CC="cc -mavx2" pip install -U --force-reinstall pillow-simd



pillow-simd - The friendly PIL fork


Ускорение операций в 2.5 раза по сравнению с Pillow и в 10 по сравнению с ImageMagick Pillow-SIMD — это «форк-последователь» библиотеки работы с изображениями...

snakers4 (Alexander), January 02, 02:53

A small job post for students (please share if you have friends that may like it)

Looking back at the channel stats - it is good for SEO to do reposts on They have an anal policy about "unique content", that does not enable you to promote your blog, unless it is in English (now it is) or you just pay them an unreasonable amount of money.

But it takes a lot of time to translate something back and do an article using their awful CMS. So - if you are interested in helping us to cross-post our recent articles there - you are welcome.

I am ready to pay well for this and in US dollars.

If you are interested - let's discuss the terms here @snakers41

snakers4 (Alexander), January 02, 01:19

A year in retrospective on


-- Happy holidays!

-- No cringe content

-- Fist year summary and some info for potential customers



A first year retrospective on

A short annual restrospective - what we achieved, what we learned and what we can do Статьи автора - Блог -

snakers4 (Alexander), January 01, 17:41

AI Learns Semantic Image Manipulation | Two Minute Papers #217
The paper "High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs" and its source code is available here: tcwang0509.github....

snakers4 (Alexander), December 31, 17:08

snakers4 (Alexander), December 31, 14:25 выложили версию 2 первых видосов...но смотреть их я конечно не буду)) кто посмотрел оба набора поделитесь чем отличаются

snakers4 (Alexander), December 31, 09:03

Попробовал такой шаблон - он как бы труЪ, но оверкилл.

snakers4 (Alexander), December 29, 06:40

Завидую людям, которые могут с серьезным лицом стакать 30 фолдов XGBoost на анонимных фичах.

Как-то совсем грустненько



Mercedes-Benz Greener Masking Challenge Masking Challenge–1st Place Winner's Interview

To ensure the safety and reliability of each and every unique car configuration before they hit the road, Daimler’s engineers have developed a robust [...]

snakers4 (Alexander), December 29, 06:27

Интересные бойлерплейты от DrivenData для проектов в сфере Data Science.

Давать такие штуки просто тем, кто сделал модель - это безусловно труЪ, но ожидать, что даже за приз люди будут морочиться на все 100% тоже глупо. С другой стороны если работать именно над кодом open-source на работе, то это очень круто. Но я не пишу код за деньги)

- Бойлерплейт


- GNU make




А вообще я давно заметил что простые инструменты рулят. К примеру на мощной машине .pipe в pandas может заменить вам и makefile и luigi. Все это зачастую технофашизм. Наверное если делать командой 100 проектов в год, то это супер зайдет.


Cookiecutter Data Science

A project template and directory structure for Python data science projects.

Сделать с первого числа канал преимущественно на английском?

Без разницы – 59

👍👍👍👍👍👍👍 42%

Не разумею такую мову – 36

👍👍👍👍 26%

Давно пора – 27

👍👍👍 19%

А как же неполиткорректный юмор и троллинг? – 15

👍👍 11%

Продался отписка – 3

▫️ 2%

👥 140 people voted so far.

snakers4 (Alexander), December 27, 15:00

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

Заказчики несите мне еще больше золота!


A few notes on social phenomena descriptions available in social networks (

In this article I share my experience in predicting social phenomena using data scraped from Статьи автора - Блог -

snakers4 (Alexander), December 27, 14:24

Посмотрел фильм Loving Vincent.

Для справки - это как бы детективная история про последние дни жизни Ван Гога, нарисованная в 12 FPS полностью в его стиле за 7 лет. Фильм идет примерно полтора часа - посчитайте сколько там картин.

То есть 100 художников 7 лет кадр за кадром перерисовывали снятые вручную сценки в стиль художника. Фильм собрал много денег на кикстартере - - но я читал, что это не единственное финансирование.

А теперь мой punchline - если купить с пяток видеокарт и хорошенько покурить последние статьи про видео и GAN-ы, то вполне вероятно такой фильм условно можно сделать за неделю из любого видео. Понятно, что скорее всего это не будет юзабельно как фильм, но просто подумайте. Это был бы идеальный use-case для таких сеток!

И да - фильм хороший.


Loving Vincent Film - bring Van Gogh paintings to life

This will be the world's first feature-length painted animation, brought to you by the Oscar winning studio - BreakThru Films.

snakers4 (Alexander), December 27, 12:54

Если вы сейчас собираете себе или компании железо для нейросеток, то не только статья про GPU Limbo, но и эта статься про ответ Intel на новые линейки от AMD вам будет интересна



Понятно, что процессор это не боттлнек, но все равно интересно как конкуренция влияет на рынок.


Обзор процессора Core i9-7900X: предвестник ядерной войны

Приобрести новый десятиядерный HEDT-процессор Core i9-7900X поколения Skylake-X готовые потратить $1 000 энтузиасты смогут уже через неделю. В преддверии начала продаж мы подробно протестировали новинку и теперь попытаемся объяснить, в чём помимо цены она может быть интереснее прошлого интеловского десятиядерного процессора, Core i7-6950X

snakers4 (Alexander), December 27, 11:00

Недавно поднимал вопрос работы с pre-trained embeddings.

До дела не дошло, но вот ссылки набрались полезные

- Работа с готовыми векторами для текста в Pytorch




- И еше ссылка на пост с векторами для русского языка






CNN_Sentence_Classification - pytorch Convolutional Networks for Sentence Classification -

snakers4 (Alexander), December 27, 08:44

Статистика за 2017 год от Kaggle:




Солнечные американцы только не научились еще

- делать письма доступными по ссылке

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


snakers4 (Alexander), December 26, 09:54

Forwarded from Savva Kolbachev:

How Docker Can Help You Become A More Effective Data Scientist

For the past 5 years, I have heard lots of buzz about docker containers. It seemed like all my software engineering friends are using them…

Forwarded from Savva Kolbachev:

Вот тут вроде неплохой туториал по докеру новый

snakers4 (Alexander), December 25, 11:23

Закончился конкурс с джунглями. Мы заняли 3 место. Не знаю радоваться или плакать. Пост опубликую, после того как орги нарисуются.

Тренд вроде есть (67 на тачках, 18 на рыбках, 3 тут) - и все конкурсы из списка были не очень простые. Но радости от победы пока мало. С другой стороны изучено было очень много материала, который мы и покроем в статье.

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

snakers4 (Alexander), December 25, 11:18

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



Carvana Image Masking Challenge–1st Place Winner's Interview

This year, Carvana, a successful online used car startup, challenged the Kaggle community to develop an algorithm that automatically removes the photo [...]

snakers4 (Alexander), December 25, 10:29

Попробовал новые архитектуры нейросетей в качестве энкодеров для transfer learning (nasnet, densenet) - они ведут себя хуже, чем inception4 / inception-resnet / resnet.

Вот как-то так. Может их надо по-особенному как-то тренировать, но есть еще и такие минусы:

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

- nasnet имеет веса примерно в 2 раза толще, чем inception4 и резнет - что отражается на памяти и скорости работы


snakers4 (Alexander), December 22, 08:15

Новые статьи от чуваков из

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

- Как создавать валидационные выборки - - про реальность при деплое и важность отложенной валидации (а не в соревнованиях). В реальности важнее скорее проверить свою модель 5 раз и собрать больше данных, чем стакать 10 фолдов

- Персональные брендинг ("продаванство") и как с этим жить и стоит ли - - мое лично мнение, что у русских его слишком мало, а у американцев - слишком много

- Еще один краткий обзор того, что нужно для работы в сфере AI - - поверхностный обзор железа и либ на рынке

- Если вы сомневаетесь нужна ли вам коробка - посмотрите цены на AWS и есть ли второе или третье применение вашей коробке (кино, помойка, игры, итд). Вот девочки, которые "смогли" в сбор коробки (если вы прочитаете что куда втыкать и не перепутаете нужный вам сокет, то это проще, чем лего)




- Преимущества Pytorch

easier to debug

dynamic computation is much better suited for natural language processing

traditional Object Oriented Programming style (which feels more natural to us)

TensorFlow’s use of unusual conventions like scope and sessions can be confusing and are more to learn

На практике в Pytorch меня только выморозило, что LSTM там очень нестабильны (или руки у меня кривые).



snakers4 (Alexander), December 22, 05:53

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

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

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

1. Если товар "дорогой" (я продавал картонную кровать из Икеи), то вам пишет СМС реальный человек (или робот с телефона, который также читает человек), упоминая цену и ваше имя в СМС. Потом он звонит (из другого региона кстати) и предлагает перевести предоплату на вашу карту. (Еще кстати звонки на его телефон как-то странно тарифицируются...) Вроде пока ок. Он спрашивает банк и говорит, что ему надо подумать. В реальности он пробивает по своей базе какая дырка в безопасности есть в таком банке. Потом он перезванивает и просит номер карты и говорит, что мол готов сейчас скинуть деньги и приехать вечером. Как бы номер карты это не криминал, но потом он просит код из СМС. Антракт. При очевидных попытках потроллить - вы сразу попадаете в бан на звонки. Дозвониться можно через скайп - и троллинг милицией вызывает бурю веселого мата в ответ - как минимум развлечение. На следующий день - телефон уже недоступен и через скайп.

2. Вам приходит такая СМС с указанием, что вам перевели деньги. Логично - 2017 год на дворе и все говно-сервисы по идее должны сделать escrow - но никто нормальный в России естественно этим пользоваться не будет. Пройдя по ссылке - вы видите это - Сломанный CSS и какая-то пародия на домен и админку. Топорно. Обратите внимание, что имя и цена заказа были спарсены в базу жуликов.

3. Приходит СМС - С именем и суммой. Потом пройдя по ссылке вы видите такой сайт - Причем андроид сразу подсказывает вам в чем фишка. Домен уже лучше подделали - не сразу отличить от субдомена.

А теперь самое классное:

1 Если вы пойдете в милицию - то с высокой степенью вероятности вам откажут в помощи за отсутствием состава преступления, если вы не повелись. Это как потерять биткоины - не преступление;

2 Парсинг, база, говно-домены и динамический сайт с простейшим АПИ, тупые психологические трюки - все до боли гениально и просто;

3 Если у вас "продвинутый" банк - авторизация по СМС, регистрация по номеру телефона с СМС на старый номер и прочее - то вас ждет приятный сюрприз. Плюс иногда даже по номеру карты + CVV на иностранных сайтах можно что-то купить. А учитывая такие эпизоды - - 3 цифры подбираются брутфорсом по идее;


snakers4 (Alexander), December 21, 15:23

AlphaZero: DeepMind's New Chess AI | Two Minute Papers #216
The paper "Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm" is available here: Ou...

snakers4 (Alexander), December 21, 13:17

"Классическая" статьи - MobileNet от гугла.

- TLDR - на Imagenet дает точность 70% и в 4 раза быстрее, чем SqueezeNet -

- Статья

- Базовый блок - очень похож на inception - блок в котором свертки по каналам и их линейная комбинация идут последовательно -

- Вся архитектура сетки -

- Бенчи сетки по числу параметров



Из интересного - из-за скорости можно использовать для transfer learning и knowledge distillation

- берем выход вашего некого "хорошего" алгоритма

- учим сетку на этом выходе - она учится очень быстро и просто

- profit

Ну и очень интересно использовать как энкодер.


snakers4 (Alexander), December 21, 11:21

Размышления на тему железа и Nvidia Titan V.

Очень советую прочитать



So for consumers, I cannot recommend buying any hardware right now. The most prudent choice is to wait until the hardware limbo passes. This might take as little as 3 months or as long as 9 months. So why did we enter deep learning hardware limbo just now?

Отложите покупку карточек.


Deep Learning Hardware Limbo - Tim Dettmers

Deep learning hardware limbo is the battle of AMD/NVIDIA/Nervana for the deep learning hardware throne. Learn what lies ahead and who is winning and why.

snakers4 (Alexander), December 21, 10:31

Для тех, кто хочет сделать rsync большого числа файлов через ssh + ключ.

Не выполняйте команду, пока не прочтете доку по всем флагам.

sudo rsync --dry-run --stats --ignore-existing --size-only -rvz -e 'ssh -p PORT -i /home/USER/.ssh/PRIVATE_KEY' --progress REMOTE_USER@REMOTE_HOST:/path/to/remote/folder /path/to/local/folder/