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

snakers4 @ telegram, 1369 members, 1636 posts since 2016

All this - lost like tears in rain.

Data science, deep learning, sometimes a bit of philosophy and math. No bs.

Our website
Our chat
DS courses review

Posts by tag «python»:

snakers4 (Alexander), October 06, 07:24

Monkey patching a PyTorch model

Well, ideally you should not do this.

But sometimes you just need to quickly test something and amend your model on the fly.

This helps:

import torch

import functools

def rsetattr(obj, attr, val):

pre, _, post = attr.rpartition('.')

return setattr(rgetattr(obj, pre) if pre else obj, post, val)

def rgetattr(obj, attr, *args):

def _getattr(obj, attr):

return getattr(obj, attr, *args)

return functools.reduce(_getattr, [obj] + attr.split('.'))

for module in model.named_modules():

old_module_path = module[0]

old_module_object = module[1]

# replace an old object with the new one

# copy some settings and its state

if isinstance(old_module_object,torch.nn.SomeClass):

new_module = SomeOtherClass(old_module_object.some_settings,




The above code essentially does the same as:

model = some_other_block






snakers4 (Alexander), September 11, 06:00

Useful Python / PyTorch bits

dot.notation access to dictionary attributes

class dotdict(dict):

__getattr__ = dict.get

__setattr__ = dict.__setitem__

__delattr__ = dict.__delitem__

PyTorch embedding layer - ignore padding

nn.Embedding has a padding_idx attribute not to update the padding token embedding.



snakers4 (Alexander), August 01, 18:05

Finally found a decent python module building guide


The Definitive Guide to Python import Statements | Chris Yeh

Stanford University, Class of 2018

snakers4 (Alexander), July 31, 05:53

Yet another python tricks book


Python Training by Dan Bader –

Dan Bader helps Python developers become more awesome. His tutorials, videos, and trainings have reached over half a million developers around the world.

snakers4 (Alexander), May 04, 07:45

A decent explanation about decorators in Python


snakers4 (Alexander), April 22, 13:53

SOCK5 proxy configuration on Vultr

As of now, Vult was not (yet) blocked, probably because it is less known in the CIS. If you missed our Digital Ocean sock5 configuration guide, then you can follow this guide.

For us, both DO and Vulture work as of now.


You can use our referral links to create accounts



If you like the above guides, consider buying us a coffee




Playing with a simple SOCKS5 proxy server on Vultr and Ubuntu 16.04

Start your own proxy server Статьи автора - Блог -

Readable list comprehensions in Python

My list and dictionary comprehensions usually look like s**t


Examples of readable comprehension formating from SO

snakers4 (Alexander), April 20, 04:58

Useful Python abstractions / sugar / patterns

I already shared a book about patterns, which contains mostly high level / more complicated patters. But for writing ML code sometimes simple imperative function programming style is ok.

So - I will be posting about simple and really powerful python tips I am learning now.

This time I found out about map and filter, which are super useful for data preprocessing:


items = [1, 2, 3, 4, 5]

squared = list(map(lambda x: x**2, items))Filter

number_list = range(-5, 5)

less_than_zero = list(filter(lambda x: x < 0, number_list))

print(less_than_zero)Also found this book -



snakers4 (Alexander), March 04, 06:26

Amazing article about the most popular warning in Pandas



A guide

Everything you need to know about the most common (and most misunderstood) warning in #pandas. #python

snakers4 (Alexander), February 24, 14:01

Just found a book on practical Python programming patterns


Looks good


snakers4 (Alexander), December 01, 11:54

На новой работе увидел, что люди тренируют свои модели на 2 питоне (ЩИТО?), на tensorflow (WTF???) и грузят данные в 1 поток (2017 год на дворе!).

По этой причине сделал коллегам такую немного трололо презентацию. Может и вам понравится


Все простое - очень просто, главное просто знать где искать)




image processing

Leveraging your hardware and software for NNs Efficiently, better with pytorch* =) * for research and competitions

snakers4 (Alexander), November 05, 04:35

Великолепная либа на питоне для работы с видео


Она построена сверху над и по сути позволяет работать с видео в 1 строчку (вместо просто итерации или ручного использования ffmpeg). Как хорошо что на питоне есть такие инструменты!




moviepy - Video editing with Python

snakers4 (Alexander), October 19, 09:55

Из серии извращений - как загрузить k-means объект из второго питона в третий, причем с ростом версии sklearn?

Очевидное решение не работает по причине смены версии sklearn


А такое работает

# saving - python2

import numpy as np

np.savetxt('centroids.txt', centroids, delimiter=',')

# loading - python3

from sklearn.cluster import KMeans

import numpy as np

centroids = np.loadtxt('centroids.txt', delimiter=',')

kmeans = KMeans(init = centroids)


Unpickling a python 2 object with python 3

I'm wondering if there is a way to load an object that was pickled in Python 2.4, with Python 3.4. I've been running 2to3 on a large amount of company legacy code to get it up to date. Having don...

snakers4 (Alexander), October 14, 07:05

У меня встал вопрос расширения класса Pytorch, который мне понравился. Если бы все было банально - я бы просто написал функцию и вызвал бы ее и передал ей объект класса, но но одна проблема - некоторые утилиты в классе вызывают локальные утилиты, которые не совсем понятно как модифицировать при импорте.

Вдохновившись примером итератора с bson (было выше -, как оказалось расширение классов делается довольно просто:

- Раз

- Два

- Ну и старая наркомания для тех кому внутрянка питона интересна






Keras generator for reading directly from BSON

Using data from Cdiscount’s Image Classification Challenge

Что сейчас больше интересно подписчикам?

Больше полнотекстовых статей – 44

👍👍👍👍👍👍👍 48%

Больше интересных ссылок – 16

👍👍👍 18%

Больше про GAN / архитектуры / сетки – 15

👍👍 16%

Больше копоти pytorch – 12

👍👍 13%

Больше про рыбок и SSD / yolo. Ну или просто про рыбок – 4

👍 4%

Новые фичи на сайт (пишите в лс какие)

▫️ 0%

👥 91 people voted so far.

snakers4 (Alexander), October 08, 08:41

Оказывается уже есть готовый squeeze-net для keras с весами =)






keras-squeezenet - Pretrained Squeezenet 1.1 implementation in Keras

snakers4 (Alexander), October 08, 07:42

Отличная паста чтобы проверять хеши файлов.

# make sure you downloaded the files correctly

import hashlib

import os.path as path

def sha256(fname):

hash_sha256 = hashlib.sha256()

with open(fname, 'rb') as f:

for chunk in iter(lambda:, b''):


return hash_sha256.hexdigest()

filenames = ['', '', '', '', ']

hashes = ['', '', '', '', '']

data_root = path.join('data/') # make sure you set up this path correctly

# this may take a few minutes

for filename, hash_ in zip(filenames, hashes):

computed_hash = sha256(path.join(data_root, filename))

if computed_hash == hash_:

print('{}: OK'.format(filename))


print('{}: fail'.format(filename))

print('expected: {}'.format(hash_))

print('computed: {}'.format(computed_hash))



snakers4 (Alexander), October 05, 07:53

Пара отличных тредов про то, как сделать ваш генератор на питоне thread-safe, то есть минимальными усилиями использовать параметр workers > 1 у fit_generator в Keras. Полезно, если ваша модель сильно CPU-bound.






Proper way of making a data generator which can handle multiple workers · Issue #1638 · fchollet/keras

I am having difficulty in writing a data generator which can work with multiple workers. My data generator works fine with one worker, but with > 1 workers, it gives me the following error: Unbound...

snakers4 (Alexander), October 04, 14:15

В новом конкурсе нашел на Kaggle отличный "мануал", про то как работать c bson (архив базы Монго).

Очень рекомендую к прочтению




Keras generator for reading directly from BSON

Using data from Cdiscount’s Image Classification Challenge

snakers4 (Alexander), September 29, 15:15

Знакомый прислал еще такое - как в juputer notebook одновременно запускать несколько ячеек





Contribute to parallel-cell development by creating an account on GitHub.

snakers4 (Alexander), September 29, 11:20

Еще лучше сниппет для скачивания файлов с докачиваением и ordered dictionaries. Качает в последовательности в которой вы загружаете ключи в словарь.

import collections

file_dict = collections.OrderedDict()

file_dict['FILENAME'] = 'URL'

for file,url in file_dict.items():

url_q = "'" + url + "'"

! wget --continue --no-check-certificate --no-proxy -O $file $url_q



snakers4 (Alexander), September 26, 06:28

Гайд по настройке виртуальных окружений на питоне и установке open-cv (не самая последняя версия есть тупо в репозитории pip)


По идее на работе правильно работать через докер или виртуальные окружения.



Configuring Ubuntu for deep learning with Python - PyImageSearch

Inside this guide you will learn how to configure your Ubuntu machine for deep learning using Python, Keras, TensorFlow, mxnet, and more.

snakers4 (Alexander), September 22, 06:59

Ну и офигенный сниппет кода, который позволяет скачивать файлы в тетрадке с хостингов с кривыми url / ожиданием загрузки и кажется даже с редиректами (серверными редиректами)

file_dict = {



for file,url in file_dict.items():

url_q = "'" + url + "'"

! wget --no-check-certificate --no-proxy -O $file $url_qКлючи и кавычки добавлены к wget спеицально.


#tips #python

snakers4 (Alexander), August 30, 08:42

Для совсем жестких извращенцев - нашел статью про то, как использовать Cython для очень быстрой работы функций. По сути C, который вызывается кодом на питоне. Может пригодится.




Fast, optimized 'for' pixel loops with OpenCV and Python - PyImageSearch

Learn how construct fast and efficient 'for' loops and loop over all pixels in an image using Python, Cython, and OpenCV.

snakers4 (Alexander), July 12, 03:47

Озадачился вопросом - а как анализировать и визуализировать звук в питоне?

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

Такое воодушевляет.

Список ссылок:

- Мотивирующее видео -

- Как проигрывать звук в jupyter notebook через HTML5 плейер - (пользуясь веб-тулзами вы можете использовать как питон, так и все наработки в вебе)

- Воркшоп от Стенфорда, где есть огромное количество ipynb файлов на разные темы, связанные с анализом звука

-- Справочник

-- Репозиторий

- Лучшая либа для анализа звука и извлечения фич -

Как-то так.


The Sound of Hydrogen

It's like the sound of silence... only louder Tweet it - Facebook it - minutephysics is now on Google+ - http://b...

Forwarded from The Devs:
Advanced Python features.

#tutorial #python