From 65333c7910299e115f286464ad7aeb24ad9f6fd7 Mon Sep 17 00:00:00 2001
From: Nathan Zhao <nz11@tyler.cs.illinois.edu>
Date: Sun, 31 Jan 2021 18:22:33 -0600
Subject: [PATCH] update expected accuracy, fix frontend causing mobilenet
 problem

---
 hpvm/projects/keras/README.md                | 18 ++++++++++--------
 hpvm/projects/keras/src/Config.py            |  2 +-
 hpvm/projects/keras/src/alexnet.py           |  9 ++++-----
 hpvm/projects/keras/src/alexnet2.py          |  5 ++---
 hpvm/projects/keras/src/alexnet_imagenet.py  |  2 +-
 hpvm/projects/keras/src/lenet.py             |  1 -
 hpvm/projects/keras/src/mobilenet_cifar10.py |  7 +++----
 hpvm/projects/keras/src/resnet18_cifar10.py  |  7 ++++---
 hpvm/projects/keras/src/vgg16_cifar10.py     |  5 ++---
 hpvm/projects/keras/src/vgg16_cifar100.py    |  5 ++---
 10 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/hpvm/projects/keras/README.md b/hpvm/projects/keras/README.md
index 9cb2bb3123..892c8f0402 100644
--- a/hpvm/projects/keras/README.md
+++ b/hpvm/projects/keras/README.md
@@ -7,6 +7,7 @@
 ```
 conda env create -f keras_environment.yml --name ${KERAS_ENV_NAME}
 ```
+Note: pip version MUST be > 19.3
 
 ### Activating Conda Environment:
 
@@ -30,14 +31,15 @@ List of benchmarks and the expected accuracies:
 
 | Benchmark       | Accuracy    |
 | ----------- | ----------- |
-| AlexNet-CIFAR10      | 79.03       |
-| AlexNet2-CIFAR10   | 84.87        |
-| AlexNet-ImageNet | 56.23 |
-| LeNet-MNIST | 99.11 |
-| MobileNet-CIFAR10 | 84.74 |
-| ResNet18-CIFAR10 | 89.48 |
-| VGG16-CIFAR10 | 89.58 |
-| VGG16-CIFAR100 | 67.46 |
+| AlexNet-CIFAR10      | 79.16       |
+| AlexNet2-CIFAR10   | 85.10        |
+| AlexNet-ImageNet | 56.23 | todo: fix broken
+| LeNet-MNIST | 99.11 | todo: fix broken
+| MobileNet-CIFAR10 | 82.40 |
+| ResNet18-CIFAR10 | 89.52 |
+| ResNet50-ImageNet | 74.50 |
+| VGG16-CIFAR10 | 89.42 |
+| VGG16-CIFAR100 | 66.20 |
 | VGG16-ImageNet | 72.50 |
 
 Activate conda environment (above) before running benchmarks 
diff --git a/hpvm/projects/keras/src/Config.py b/hpvm/projects/keras/src/Config.py
index 9b0c4d0768..2edc5c1add 100644
--- a/hpvm/projects/keras/src/Config.py
+++ b/hpvm/projects/keras/src/Config.py
@@ -1,3 +1,3 @@
 
 # Path Relative to Model Params Directory
-MODEL_PARAMS_DIR = "../../build/model_params/"
+MODEL_PARAMS_DIR = "../../../hpvm/test/dnn_benchmarks/model_params/"
diff --git a/hpvm/projects/keras/src/alexnet.py b/hpvm/projects/keras/src/alexnet.py
index 4682a96eb5..4b23fd995f 100644
--- a/hpvm/projects/keras/src/alexnet.py
+++ b/hpvm/projects/keras/src/alexnet.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-import cv2
 import scipy
 import scipy.io
 import keras
@@ -56,7 +55,7 @@ class AlexNet_CIFAR10(Benchmark):
         #model.add(Dense(256))
         model.add(Dense(self.num_classes))
         model.add(Activation('softmax'))
-
+        
         return model
 
     
@@ -69,8 +68,8 @@ class AlexNet_CIFAR10(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+        X_train = (X_train - mean) / (std + 1e-7)
+        X_val = (X_val - mean) / (std + 1e-7)  
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
@@ -140,7 +139,7 @@ if __name__ == '__main__':
     src_dir = 'data/alexnet_cifar10_src/'
     num_classes = 10
     batch_size = 500
-
+        
     model = AlexNet_CIFAR10('AlexNet_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size)
     
     model.run(sys.argv)
diff --git a/hpvm/projects/keras/src/alexnet2.py b/hpvm/projects/keras/src/alexnet2.py
index 8f068e4d6e..de69d8c129 100644
--- a/hpvm/projects/keras/src/alexnet2.py
+++ b/hpvm/projects/keras/src/alexnet2.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-import cv2
 import scipy
 import scipy.io
 import keras
@@ -68,8 +67,8 @@ class AlexNet2_CIFAR10(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+        X_train = (X_train - mean) / (std + 1e-7)
+        X_val = (X_val - mean) / (std + 1e-7)  
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
diff --git a/hpvm/projects/keras/src/alexnet_imagenet.py b/hpvm/projects/keras/src/alexnet_imagenet.py
index 4c00650abd..c05f757a7c 100644
--- a/hpvm/projects/keras/src/alexnet_imagenet.py
+++ b/hpvm/projects/keras/src/alexnet_imagenet.py
@@ -141,7 +141,7 @@ class AlexNet(Benchmark):
         x = Activation('relu')(x)
         x = Dense(self.num_classes)(x)
         x = Activation('softmax')(x)
-
+        
         model = Model(input_layer, x)
 
         return model
diff --git a/hpvm/projects/keras/src/lenet.py b/hpvm/projects/keras/src/lenet.py
index 72e77f756d..0210baee26 100644
--- a/hpvm/projects/keras/src/lenet.py
+++ b/hpvm/projects/keras/src/lenet.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-import cv2
 import scipy
 import scipy.io
 import keras
diff --git a/hpvm/projects/keras/src/mobilenet_cifar10.py b/hpvm/projects/keras/src/mobilenet_cifar10.py
index 2fba761250..367a4dfc62 100644
--- a/hpvm/projects/keras/src/mobilenet_cifar10.py
+++ b/hpvm/projects/keras/src/mobilenet_cifar10.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-import cv2
 import scipy
 import scipy.io
 import keras
@@ -45,7 +44,7 @@ class MobileNet_CIFAR10(Benchmark):
         def _depthwise_conv_block(pointwise_conv_filters, alpha, depth_multiplier=1, strides=(1, 1)):
             channel_axis = 1 
 
-            model.add(ZeroPadding2D(padding = ((1,1), (1,1) )))
+            model.add(ZeroPadding2D(padding=((1,1), (1,1))))
 
             model.add(DepthwiseConv2D((3, 3),
                                        padding='valid',
@@ -110,8 +109,8 @@ class MobileNet_CIFAR10(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+        X_train = (X_train - mean) / (std + 1e-7)
+        X_val = (X_val - mean) / (std + 1e-7)  
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
diff --git a/hpvm/projects/keras/src/resnet18_cifar10.py b/hpvm/projects/keras/src/resnet18_cifar10.py
index 8842ff7c67..1367c0830b 100644
--- a/hpvm/projects/keras/src/resnet18_cifar10.py
+++ b/hpvm/projects/keras/src/resnet18_cifar10.py
@@ -39,7 +39,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-#import cv2
 import scipy
 import scipy.io
 import keras
@@ -443,8 +442,10 @@ class ResNet18_CIFAR10(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+#         X_train = (X_train - mean) / (std + 1e-7)
+#         X_val = (X_val - mean) / (std + 1e-7)  
+        X_train = (X_train - mean)
+        X_val = (X_val - mean) 
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
diff --git a/hpvm/projects/keras/src/vgg16_cifar10.py b/hpvm/projects/keras/src/vgg16_cifar10.py
index d8b26f9386..873e23b766 100644
--- a/hpvm/projects/keras/src/vgg16_cifar10.py
+++ b/hpvm/projects/keras/src/vgg16_cifar10.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-#import cv2
 import scipy
 import scipy.io
 import keras
@@ -108,8 +107,8 @@ class VGG16_CIFAR10(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+        X_train = (X_train - mean) / (std + 1e-7)
+        X_val = (X_val - mean) / (std + 1e-7)  
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
diff --git a/hpvm/projects/keras/src/vgg16_cifar100.py b/hpvm/projects/keras/src/vgg16_cifar100.py
index 0dd47ac992..03bb852e00 100644
--- a/hpvm/projects/keras/src/vgg16_cifar100.py
+++ b/hpvm/projects/keras/src/vgg16_cifar100.py
@@ -4,7 +4,6 @@ import glob
 
 import numpy as np
 import tensorflow as tf
-#import cv2
 import scipy
 import scipy.io
 import keras
@@ -124,8 +123,8 @@ class VGG16_CIFAR100(Benchmark):
 
         mean = np.mean(X_train)
         std = np.std(X_train)
-        X_train = (X_train - mean)/ (std + 1e-7)
-        X_val = (X_val - mean)/ (std + 1e-7)  
+        X_train = (X_train - mean) / (std + 1e-7)
+        X_val = (X_val - mean) / (std + 1e-7)  
 
         X_test = X_val[0:5000]
         y_test = y_val[0:5000]
-- 
GitLab