Spark in me
2.74K subscribers
1.27K photos
71 videos
118 files
2.9K links
Lost like tears in rain. DS, ML, a bit of philosophy and math. No bs or ads.
Download Telegram
Гайд по настройке виртуальных окружений на питоне и установке open-cv (не самая последняя версия есть тупо в репозитории pip)

- https://www.pyimagesearch.com/2017/09/25/configuring-ubuntu-for-deep-learning-with-python/

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

#data_science
#python
Еще лучше сниппет для скачивания файлов с докачиваением и 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

#data_science
#python
Знакомый прислал еще такое - как в juputer notebook одновременно запускать несколько ячеек
- https://github.com/alexanderkuk/parallel-cell

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

Очень рекомендую к прочтению
- https://www.kaggle.com/humananalog/keras-generator-for-reading-directly-from-bson/notebook

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

- https://github.com/fchollet/keras/issues/1638
- https://stackoverflow.com/questions/41194726/python-generator-thread-safety-using-keras
- http://anandology.com/blog/using-iterators-and-generators/

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

# 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: f.read(4096), b''):
hash_sha256.update(chunk)
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))
else:
print('{}: fail'.format(filename))
print('expected: {}'.format(hash_))
print('computed: {}'.format(computed_hash))

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

Вдохновившись примером итератора с bson (было выше - https://goo.gl/xvZErF), как оказалось расширение классов делается довольно просто:
- Раз https://goo.gl/JZpfiV
- Два https://goo.gl/D3KkLm
- Ну и старая наркомания для тех кому внутрянка питона интересна
-- https://www.artima.com/weblogs/viewpost.jsp?thread=237121
-- https://www.artima.com/weblogs/viewpost.jsp?thread=236278
-- http://www.artima.com/weblogs/viewpost.jsp?thread=236275

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

Очевидное решение не работает по причине смены версии sklearn
- https://goo.gl/s8V5zf

А такое работает
# 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)

#python
Великолепная либа на питоне для работы с видео
- https://github.com/Zulko/moviepy

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

#python
#video