STAT 479: Deep Learning (Spring 2019)
Instructor: Sebastian Raschka (sraschka@wisc.edu)
Course website: http://pages.stat.wisc.edu/~sraschka/teaching/stat479-ss2019/
GitHub repository: https://github.com/rasbt/stat479-deep-learning-ss19
%load_ext watermark
%watermark -a 'Sebastian Raschka' -v -p numpy
Sebastian Raschka CPython 3.6.5 IPython 6.5.0 numpy 1.15.4
def forloop(x, w):
z = 0.
for i in range(len(x)):
z += x[i] * w[i]
return z
def listcomprehension(x, w):
return sum(x_i*w_i for x_i, w_i in zip(x, w))
def vectorized(x, w):
return x_vec.dot(w_vec)
x, w = np.random.rand(100000), np.random.rand(100000)
x_vec, w_vec = np.array(x), np.array(w)
%timeit -r 100 -n 10 forloop(x, w)
38.9 ms ± 1.32 ms per loop (mean ± std. dev. of 100 runs, 10 loops each)
%timeit -r 100 -n 10 listcomprehension(x, w)
29.7 ms ± 842 µs per loop (mean ± std. dev. of 100 runs, 10 loops each)
%timeit -r 100 -n 10 vectorized(x_vec, w_vec)
46.8 µs ± 8.07 µs per loop (mean ± std. dev. of 100 runs, 10 loops each)