タグ

ブックマーク / saket.hatenadiary.org (2)

  • Boost.Pythonの使い方とNumpy/Scipy arrayの渡し方 - Risky Dune

    scipyで書いたプログラムでも一部が遅くてそこをC++で実装したいというシナリオはよくある. それには色々な手段があるというのは以前の日記でも紹介した通り. 今回はBoost.Pythonでscipy/numpyのarray(ndarray)を取り扱う方法を説明する. 基的な使い方はboost-python ではじめる大規模機械学習とかBoost.Python の機能をざっと紹介してみるも参考になる. 簡単な使い方 さて題へ. boost.Pythonにおいてnumpy.ndarrayに対応するクラスは, boost::python::numericである. これは Boost.Python には、PythonC++ の型の相互変換を行うためのコンバータという機構が備わっており、すべての値の受け渡しにはこのコンバータが介在している。 とあるように, numpy.ndarray

    Boost.Pythonの使い方とNumpy/Scipy arrayの渡し方 - Risky Dune
    rishida
    rishida 2013/07/13
    boostにndarrayを渡す
  • Theano 解説 - Risky Dune

    「Deep Learning Implementation」でググるとトップに出てくることで, たまに話題になるライブラリ Theano について簡単に調べたので紹介する. 間違いがあったら是非教えて欲しい. なお, Deep Learningに関する解説は今回は行わない. TheanoとはPythonにおける数値計算用のライブラリである. 行列演算などを行う関数を提供しており, numpy/scipyの代替パッケージと思えばいいだろう. 大きな特徴は 実行時におけるC++コードの生成とコンパイル GPUサポート 解析的な微分のサポート (x^2の微分=2xという操作を自動でやってくれる) の3つである. 一部は後に詳細を説明する. これによってMultilayer Perceptronを実行するベンチマークでは, Theanoがnumpyより1.8倍, Matlabより1.6倍速いという

    Theano 解説 - Risky Dune
    rishida
    rishida 2013/04/25
    DeepLearningや微分もできちゃうtheanoさん。本質は行列演算。裏でC++が動いているので早いっぽい。GPUとかも使えるらしい。ただしマルチコアは弱いので自分で書くべし
  • 1