2016-10-05 10 views

答えて

0

numpy.logが高速になる可能性があります。 CPUとデータの両方でそれらを比較することができます。

import theano 
import theano.tensor as T 
import numpy as 

x = T.vector('x') 
theano_log = theano.function([x], T.log(x)) 

a = np.random.rand(1000).astype(np.float32) # test data 
assert np.allclose(theano_log(a), np.log(a)) # optional correctness check 

は、その後で測定:サイズ1000年numpyのベクトルのためにそう

In [6]: %timeit np.log(a) 
100000 loops, best of 3: 7.89 µs per loop 

In [7]: %timeit theano_log(a) 
10000 loops, best of 3: 44.1 µs per loop 

は約5倍高速です。この結果は、ではなく、theanoで行うことができるGPUで計算を実行するように切り替えると変わる可能性があります。

主な違いは、各ライブラリの使用方法です。いくつかの演算を配列(例:log-> square-> mean)で実行したい場合は、最初に計算グラフを宣言してから、一度にグラフ全体を評価すると最適化が行われる可能性があります。 numpyを使用すると、各中間ステップが評価され、多くの中間変数がプロセス上に生成されることがあり、場合によってはtheanoで回避できます。