summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaghuveer Devulapalli <raghuveer.devulapalli@intel.com>2020-02-10 15:41:44 -0800
committerRaghuveer Devulapalli <raghuveer.devulapalli@intel.com>2020-02-11 17:00:38 -0800
commit665da87e956fa6cd0753b026ef4df1b7707baa46 (patch)
tree79f0b67a046b2672c990480710240eed5fc70696
parentaf0dfce126a1d83cc33b8da9d91bce664f5d5297 (diff)
downloadnumpy-665da87e956fa6cd0753b026ef4df1b7707baa46.tar.gz
BENCH: Adding benchmarks for float32 and float64 sin/cos/exp/log functions
-rw-r--r--benchmarks/benchmarks/bench_avx.py32
1 files changed, 31 insertions, 1 deletions
diff --git a/benchmarks/benchmarks/bench_avx.py b/benchmarks/benchmarks/bench_avx.py
index b6a6aa59e..c166d6b3f 100644
--- a/benchmarks/benchmarks/bench_avx.py
+++ b/benchmarks/benchmarks/bench_avx.py
@@ -2,7 +2,11 @@ from .common import Benchmark
import numpy as np
-avx_ufuncs = ['sqrt',
+avx_ufuncs = ['sin',
+ 'cos',
+ 'exp',
+ 'log',
+ 'sqrt',
'absolute',
'reciprocal',
'square',
@@ -125,3 +129,29 @@ class Mandelbrot(Benchmark):
def time_mandel(self):
self.mandelbrot_set(-0.74877,-0.74872,0.06505,0.06510,1000,1000,2048)
+
+class LogisticRegression(Benchmark):
+
+ timeout = 1000
+ def train(self, max_epoch):
+ for epoch in range(max_epoch):
+ z = np.matmul(self.X_train, self.W)
+ A = 1/ (1 + np.exp(-z)) #sigmoid(z)
+ loss = -np.mean(self.Y_train * np.log(A) + (1-self.Y_train) * np.log(1-A))
+ dz = A - self.Y_train
+ dw = (1/self.size) * np.matmul(self.X_train.T, dz)
+ self.W = self.W - self.alpha*dw
+
+ def setup(self):
+ np.random.seed(42)
+ self.size = 250
+ features = 16
+ self.X_train = np.float32(np.random.rand(self.size,features))
+ self.Y_train = np.float32(np.random.choice(2,self.size))
+ # Initialize weights
+ self.W = np.float32(np.zeros((features,1)))
+ self.b = np.float32(np.zeros((1,1)))
+ self.alpha = 0.1
+
+ def time_train(self):
+ self.train(5000)