KZKY memo

自分用メモ.

python

python: multiprocessing 2

前回zipfileのunzipをpythonのmultithreadingで行って全然早くなっていないことを確認したが, image 2 ndarray pickle 2 ndarray だとどうなるのが調べてみた. pickleはndarray.dumpしたもの. 実験設定と環境 OS Ubuntu14.04 CPU Intel(R) Core(TM) i5-25…

Flask x Celery

次の2つを含んだサンプル Flaskの中からCelery Taskを実行する Celery Taskの中からdbにアクセスする flask_celery.py from celery import Celery from flask import Flask, request, jsonify from flask.ext.login import LoginManager, UserMixin, login_…

Flask-Login x Flask-Mongoengine

Flask-Loginを使って Flask-MongoEngineで作成したUser Documentをuser classとして使用する Testや単なるAPIとして,APIを使用したいときに認証回避を可能にする これらをやってみる Sample Code #!/usr/bin/env python from flask import Flask, request, …

Celery: Task Revoke

taskの中断 revokeを使う async_resultにアクセス可能なら,async_result.revoke() idのみわかっているなら,celery.task.control.revoke() worker.py from celery import Celery import time import celeryconfig #app = Celery("tasks", backend="rpc", br…

python: socketio-client

jsからだけではなく,pythonからsocketio serverにリクエストしたい.1. python-socketio-client 2. python-socketio-sever 3. jsという順にメッセージを送りたい 環境 ubuntu 14.04 python 2.7 server: flask-socketio client: python socketio-client Inst…

python: pandas 基本

基本 Rからnumpyに入った人にとってDataFrameがないのは痛い. pythonのlibraryにpandasというのがあって,それでDataFrame-likeなオブジェクトを扱える. データ構造 -------------------------------------------------- Dimensions Name Description ----…

python: Supervisord 基本

Supervisord ClouderaManagerのこれを使用してHadoop Serviceを起動している. subprocessesの管理もできるので分散システムに関しては向いている. 日本語の記事がかなりまとまっているので基本はそれを参考 調べるときは本家を見る Configはini形式 環境 U…

Celery 基本

前提 OS: ubuntu14.04 インストール sudo apt-get install rabbitmq-server python-celery python-celery-doc 基本 celeryはmessage passing framework message brokerを必要とする Broker 選べる RabbitMQ Redis SQLAlchemy, Django Database (not recommen…

Flask-Auth 基本

Pluginの列挙 DIY Flask-Login Flask-Auth FlaskSecurity DIY http://blog.miguelgrinberg.com/post/restful-authentication-with-flask Flask-Login https://blog.openshift.com/use-flask-login-to-add-user-authentication-to-your-python-application/ …

Flask-SocketIO 基本

Installation pip install flask-socketio まずはこちらをやる 短いから WebSocket 基本 Communication protocol in HTML5 Permanent connection Bi-directional communication Either client or server can initiate communication Flask-Socketsとの違い F…

Flask-SQLAlchemy 基本

SQLAlchemyの基本 ORM: Object Relational Mapper DMP: Data Mapper Pattern; classes mapped to a database Quick Start https://pythonhosted.org/Flask-SQLAlchemy/quickstart.html で事たりる hello_sqlalchemy_mysql.py from flask import Flask from f…

Flask基本

Installation 環境 Ubuntu14.04 pip install $ pip install Flask $ python hello.py * Running on http://localhost:5000/ Getting Started Super Basics from flask import Flask app = Flask(__name__) @app.route("/") def hello(): return "Hello World…

python: pairwise-distance

numpyでfor-loopしながらpairwise distanceを計算すると非常に遅い. pairwise distanceはgram行列のカーネルにrbfを使った時に絶対に出てくるので,高速計算は必須要件. 比較 普通のfor-loop 行列計算ベースで一気に行う方法 numbaで比較する 環境 Ubuntu1…

python: 行列演算の高速化

こことここにinspireされてnumbaを試した. 結論から言うと超早い.ごりごりの数値計算をするなら絶対使うべき. Installation Ubuntu14.04でanacondaは使わない llvm3.5 / llvmlite sudo apt-get install -y llvm3.5* sudo apt-get install -y libedit-dev …

GPU/CPUの計算速度比較 02

ここに載っている一般的なlogistic regressionを解くとき,GPU vs CPUで速度比較したのでその時のメモ. 実験環境 計算リソース GPU: GeForce GTX 780 CPU: Intel(R) Xeon(R) CPU X5680 @ 3.33GHz 実験1 設定 #dims = 784 (固定: same as in sample code) #sa…

GPU/CPUの計算速度比較

全サンプルの内積計算をNumpy (CPU) vs Theano (GPU)で速度比較をした時のメモ.実際のサンプルを書く前に,普通に計算する場合を考える.普通にd-by-nの行列があったら,すべてのサンプルの内積計算の計算量は で,nに関してsquare-order.基本的にこういっ…

Theano BLAS周りのリンクエラー

こんな感じのエラーがでたら /usr/bin/ld: cannot find -lf77blas. collect2: ld \xe3\x81\xaf\xe3\x82\xb9\xe3\x83\x86\xe3\x83\xbc\xe3\x82\xbf\xe3\x82\xb9 1 \xe3\x81\xa7\xe7\xb5\x82\xe4\xba\x86\xe3\x81\x97\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f. ',…

Theano: Logistic Regressionまでの道のり

Theanoの基本的シンボル操作から,基本的な微分を経て,Logistic Regressionまでの道のり. 基本 installation ubuntu14.04の場合 $ sudo pip install theano version確認 $ python -c "import theano; print theano.__version__" 0.6.0 import 取りあえずim…

Python: Flake8

Cask経由でflycheckを入れるとsyntax checkerはflake8になっているよう. flake8のデフォルトの設定だと警告を出し過ぎて,目に良くないので抑制する設定. $ vi .config/flake8 [flake8] ignore = E226,E302,E303,E41,C0326,W0621,C0111,C0103,W0702,W0703,…

Ansible まとめ

導入 サーバプロビジョニングにおけるOrchestration/Configurationに相当 chef/capistrano/fabric/pdshに代替可能 冪等性があるが半自動(ユーザがファイルの有無で条件付する)のモジュールもある 基本 host/playbook/moduleで構成される host ini形式でhost…

python multiprocessing

Python multiprocessingでWokerPoolを作る.multiprocessing.Poolはタスクの実行にグローバル関数しか渡せないの不便だと思う. WorkerPool Worker Task の3クラスを作ってJava ConcurrentのExecuterServiceのようにマルチプロセッシングしたい. そうした…

python-online-machine-learning-library 4

python-online-machine-learning-library 3 - KZKY's memo python-online-machine-learning-library 3 - KZKY's memoの続き. Online Learning Methodsを簡単に評価した.batch methodとの比較では,Liblinearを使用,ただし,Liblinearはscikit-learnのイン…

python-online-machine-learning-library 3

python-online-machine-learning-library 2 - KZKY memo python-online-machine-learning-library 2 - KZKY memoの続き.Online Learning Methodsを簡単に評価した.batch methodとの比較では,Liblinearを使用,ただし,Liblinearはscikit-learnを使用して…

python-online-machine-learning-library 2

この記事の続き.python-online-machine-learning-library - KZKY's memo python-online-machine-learning-library - KZKY's memo ここでDLできる.Confidence WeightedとExactly Soft Confidence Weightedは 多値分類 スパースデータ の対応をした. 次はLi…

Sparse Dataset Loader

load_svmlight_file scikit-learnにおける便利関数の話.NPLとか高次元スパースデータ記述方法で次のような形式がある. libsvm/liblinear/svmlightで使用されているインプットファイルフォーマット. <label><space><feature-id>:<feature-value><space><feature-id>:<feature-value><space>.... <label><space><feature-id>:<feature-value><space><feature-id>:<feature-value><space>...…</space></feature-value></feature-id></space></feature-value></feature-id></space></label></space></feature-value></feature-id></space></feature-value></feature-id></space></label>

DictVectorizer

DictVectorizer scikit-learnにある便利ツールの話.今までカテゴリカルデータは自分でインデクシングして,OneHotEncodingや1-of-Kと呼ばれる行列を作っていた.しかし,scikit-learnには,この機能を提供する便利クラスが用意されてる. それがDictVectori…

Python DI Framework Pinject

Googleの人が作った (Google公式のProjectではない)Python DI Frameworkらしい. 結構簡単に使える.数人で開発する場合に,全体のロジックやSWアーキは自分で握って, クラス単位で他人が作成したものに差し替えたいという場合は, スクリプトといえど,DI…

Python DI Framework memo

Injector https://pypi.python.org/pypi/injector simple DLは多い Inject https://pypi.python.org/pypi/Inject/3.1.1 DLはすくない (Injectorと比べて) Pinject https://github.com/google/pinject http://d.hatena.ne.jp/heavenshell/20140121/1390304783…

python threading for I/O-bound processing

pythonのthreadingは,GILの影響でCPU-boundな処理はserialと変わらない時間で実行されるが,I/O-boundな処理はそうでもないと聞いたことがある.本当にそうなのかと思って,MB単位のzip filesを解凍するというI/O-boundなタスクで,I/O-boundなタスクがthre…

CherryPy 入門/まとめ

概要 CherryPyは,軽量なpython WAF.もっと軽量でSinatra-likeに書けるpython WAFにFlask/Bottleがあるが,オブジェクト志向のように書けて,URL Routingとオブジェクトツリーを対応させたい場合にはCherryPyが良いと思う. Fullstack WAFだとDjangoが圧倒…