2016-06-02 27 views
0

私はnp.random.uniformを使用するアルゴリズムを持っています。これを改善するためにnp.random.betaおよび/またはnp.random.gammaに切り替えたいと思います。近似の効率。アルゴリズムはすでにかなり時間がかかり(〜8時間)、メモリが多用されているので(スレッドごとに5 GB)、実行を試みる前にどれくらいの費用がかかるかについての情報があるかどうかを確認したいと考えました。計算コストnp.random.uniform対np.random.beta

ループ内で呼び出されるので、メモリ要件を変更しないと想定する必要がありますか?

ランタイムの違いは何ですか?

+0

1回の実行でその関数が何回呼び出されたか知っていますか? –

+0

数百万のオーダー – Keith

答えて

1

だけipython使用してテスト:

In [1]: import numpy as np 

In [2]: %timeit np.random.random(1000) 
100000 loops, best of 3: 9.25 µs per loop 

In [3]: %timeit np.random.beta(0.5, 0.5, 1000) 
10000 loops, best of 3: 45.3 µs per loop 

は、これは5倍を暗示するが、ベータ版のパラメータに依存するように見えます。

しかし、結論を導く前に、乱数生成がアルゴリズムの時間制限要因であることを確認する必要があります。プロファイラを実行して、実際のボトルネックがどこにあるかを調べます。

関連する問題