numpy.log和theano.tensor.log有什么区别? 他们表现相同吗?
答案 0 :(得分: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
然后测量:
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
因此,对于大小为1000 numpy
的向量,大约快5倍。如果您切换到可以使用theano
而不是numpy
执行GPU中的计算,则此结果可能会有所不同。
主要区别在于您使用每个库的方式。在theano中,如果你想对一个数组做几个操作(例如:log-> square-> mean),你首先要声明一个计算图,然后立即评估整个图,这可能会导致一些优化。使用numpy
,您将评估每个中间步骤,在流程上创建许多中间变量,在某些情况下可以避免theano
。