numpy 如何加速 tanh?
numpy how to speed up tanh?
numpy tanh 似乎比它的 pytorch 等效项慢得多:
import torch
import numpy as np
data=np.random.randn(128,64,32).astype(np.float32)
%timeit torch.tanh(torch.tensor(data))
%timeit np.tanh(data)
820 µs ± 24.6 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
3.89 ms ± 95.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
有没有办法在 numpy 中加速 tanh?谢谢!
您可以尝试使用 numexpr
如下:
pip install numexpr
然后:
import numexpr as ne
import numpy as np
data=np.random.randn(128,64,32).astype(np.float32)
resne = ne.evaluate("tanh(data)")
resnp = np.tanh(data)
然后勾选全部关闭:
In [16]: np.allclose(resne,resnp)
Out[16]: True
并检查时间:
In [14]: %timeit res = ne.evaluate("tanh(data)")
311 µs ± 1.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [15]: %timeit np.tanh(data)
1.85 ms ± 7.43 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
numpy tanh 似乎比它的 pytorch 等效项慢得多:
import torch
import numpy as np
data=np.random.randn(128,64,32).astype(np.float32)
%timeit torch.tanh(torch.tensor(data))
%timeit np.tanh(data)
820 µs ± 24.6 µs per loop (mean ± std. dev. of 7 runs, 1,000 loops each)
3.89 ms ± 95.4 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
有没有办法在 numpy 中加速 tanh?谢谢!
您可以尝试使用 numexpr
如下:
pip install numexpr
然后:
import numexpr as ne
import numpy as np
data=np.random.randn(128,64,32).astype(np.float32)
resne = ne.evaluate("tanh(data)")
resnp = np.tanh(data)
然后勾选全部关闭:
In [16]: np.allclose(resne,resnp)
Out[16]: True
并检查时间:
In [14]: %timeit res = ne.evaluate("tanh(data)")
311 µs ± 1.26 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [15]: %timeit np.tanh(data)
1.85 ms ± 7.43 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)