1
numpy.logとtheano.tensor.logの違いは何ですか? 同じことを実行しますか?numpyの対数とtheano.tensorの差
numpy.logとtheano.tensor.logの違いは何ですか? 同じことを実行しますか?numpyの対数とtheano.tensorの差
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
で回避できます。