diff --git a/hpvm/test/dnn_benchmarks/keras/Benchmark.py b/hpvm/test/dnn_benchmarks/keras/Benchmark.py index 3d75feca580a325169f49ccf5a3d409a747b58ff..c225ff97661aef8f4fceb123b79190cb7c819dd7 100644 --- a/hpvm/test/dnn_benchmarks/keras/Benchmark.py +++ b/hpvm/test/dnn_benchmarks/keras/Benchmark.py @@ -24,21 +24,24 @@ class Benchmark: self.num_classes = num_classes self.batch_size = batch_size - + # Override function in subclass def buildModel(self): return + # Override function in subclass def data_preprocess(self): return - + + # Override function in subclass def trainModel(self, X_train, y_train, X_test, y_test): return + # Override function in subclass def inference(self): return - # Compiles frontend generated sources + # Common Function - Do not override in Subclasses def compileSource(self, working_dir, src_name, binary_name): src_file = os.getcwd() + "/" + working_dir + "/" + src_name # approxhpvm_src.cc" @@ -80,8 +83,8 @@ class Benchmark: print ("Usage: python ${benchmark.py} [hpvm_reload|train] [frontend] [compile]") sys.exit(0) - - def run(self, argv): + # Common Function for Exporting to HPVM Modules - Do not Override in Subclasses + def exportToHPVM(self, argv): if len(argv) < 2: self.printUsage() @@ -154,9 +157,6 @@ class Benchmark: model.save_weights(self.keras_model_file) - #elif len(argv) > 2: - # self.printUsage() - diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet.py b/hpvm/test/dnn_benchmarks/keras/alexnet.py index 86019e80e5a713d711b9d9c6e45cf91d4b01b9a5..d6e7f98c4375fcb603c1f9549ea931410d7423ad 100644 --- a/hpvm/test/dnn_benchmarks/keras/alexnet.py +++ b/hpvm/test/dnn_benchmarks/keras/alexnet.py @@ -153,6 +153,6 @@ if __name__ == '__main__': model = AlexNet_CIFAR10('AlexNet_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) # This invokes the common run function in src/Benchmark.py - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet2.py b/hpvm/test/dnn_benchmarks/keras/alexnet2.py index 16bd92b23e3659be2f851d14e5030b8a436c3ac2..22b499d577a3b42866465614cca4d2fd71e87942 100644 --- a/hpvm/test/dnn_benchmarks/keras/alexnet2.py +++ b/hpvm/test/dnn_benchmarks/keras/alexnet2.py @@ -144,4 +144,4 @@ if __name__ == '__main__': model = AlexNet2_CIFAR10('AlexNet2_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py b/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py index 9f5bbe12c93f667cae3bec37089a83b51df5311e..e23fef741715be9791c1aba0210a27ef5b947934 100644 --- a/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py +++ b/hpvm/test/dnn_benchmarks/keras/alexnet_imagenet.py @@ -101,7 +101,7 @@ if __name__ == '__main__': model = AlexNet('AlexNet_Imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/lenet.py b/hpvm/test/dnn_benchmarks/keras/lenet.py index e158d709136f3d593a74aa8bc770faa1bd59707f..83f76ef306c31c25d1f1e961ab1922e89c217b28 100644 --- a/hpvm/test/dnn_benchmarks/keras/lenet.py +++ b/hpvm/test/dnn_benchmarks/keras/lenet.py @@ -112,4 +112,4 @@ if __name__ == '__main__': model = LeNet_MNIST('LeNet_MNIST', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py b/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py index 83b04445221d8826f62699a7fc2e45310654e857..a236e0305f6f09bfa5d3335f405e6d3fb337894d 100644 --- a/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py +++ b/hpvm/test/dnn_benchmarks/keras/mobilenet_cifar10.py @@ -190,5 +190,5 @@ if __name__ == '__main__': model = MobileNet_CIFAR10('MobileNet_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py b/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py index 8ef31e3ff6dc2f252dbfa50fb557449220d01f39..9e8c23cdc6df6bb168257fa69cfba6015e9569f2 100644 --- a/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py +++ b/hpvm/test/dnn_benchmarks/keras/resnet18_cifar10.py @@ -562,5 +562,5 @@ if __name__ == '__main__': model = ResNet18_CIFAR10('ResNet18_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py b/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py index c1632750a91dc85815da15a1d0df718d00073311..9ac71337b94899002296b736469d480083f7b7ad 100644 --- a/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py +++ b/hpvm/test/dnn_benchmarks/keras/resnet50_imagenet.py @@ -149,7 +149,7 @@ if __name__ == '__main__': model = ResNet50('ResNet50_imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py b/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py index 27fceb44d2466604f4536561c7786407f3c571eb..2d4b8afab532d7632de9968236690bc63798fc1e 100644 --- a/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py +++ b/hpvm/test/dnn_benchmarks/keras/test_benchmarks.py @@ -1,6 +1,7 @@ import os +import sys import subprocess import site @@ -197,17 +198,25 @@ class BenchmarkTests: if __name__ == "__main__": + if len(sys.argv) < 2: + print ("Usage: python3 test_dnnbenchmarks.py ${work_dir}") + + work_dir = sys.argv[1] + if not os.path.exists(work_dir): + os.mkdir(work_dir) + os.chdir(work_dir) + testMgr = BenchmarkTests() - AlexNet = Benchmark("alexnet.py", 79.28) - AlexNet_ImageNet = Benchmark("alexnet_imagenet.py", 56.30) - AlexNet2 = Benchmark("alexnet2.py", 84.98) - LeNet = Benchmark("lenet.py", 98.70) - MobileNet = Benchmark("mobilenet_cifar10.py", 84.42) - ResNet18 = Benchmark("resnet18_cifar10.py", 89.56) - ResNet50 = Benchmark("resnet50_imagenet.py", 75.10) - VGG16_cifar10 = Benchmark("vgg16_cifar10.py", 89.96) - VGG16_cifar100 = Benchmark("vgg16_cifar100.py", 66.50) - VGG16_ImageNet = Benchmark("vgg16_imagenet.py", 69.46) + AlexNet = Benchmark("../alexnet.py", 79.28) + AlexNet_ImageNet = Benchmark("../alexnet_imagenet.py", 56.30) + AlexNet2 = Benchmark("../alexnet2.py", 84.98) + LeNet = Benchmark("../lenet.py", 98.70) + MobileNet = Benchmark("../mobilenet_cifar10.py", 84.42) + ResNet18 = Benchmark("../resnet18_cifar10.py", 89.56) + ResNet50 = Benchmark("../resnet50_imagenet.py", 75.10) + VGG16_cifar10 = Benchmark("../vgg16_cifar10.py", 89.96) + VGG16_cifar100 = Benchmark("../vgg16_cifar100.py", 66.50) + VGG16_ImageNet = Benchmark("../vgg16_imagenet.py", 69.46) testMgr.addBenchmark(AlexNet) #testMgr.addBenchmark(AlexNet_ImageNet) diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py index 9f298ebfa6a385bbeee48a2bbf6c193d8849a4d9..03563cba8a79a58ef4cc9e04160f2ae6aaca2974 100644 --- a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py +++ b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar10.py @@ -192,6 +192,6 @@ if __name__ == '__main__': model = VGG16_CIFAR10('VGG16_CIFAR10', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py index 4f6168d0f022223b2f355791f2bd7b11d5e04440..716b441706f26008aae9e30c96cad23fcd0b398e 100644 --- a/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py +++ b/hpvm/test/dnn_benchmarks/keras/vgg16_cifar100.py @@ -207,5 +207,5 @@ if __name__ == '__main__': model = VGG16_CIFAR100('VGG16_CIFAR100', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - model.run(sys.argv) + model.exportToHPVM(sys.argv) diff --git a/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py b/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py index c84b429407cf491c5d6f4b6cb30b1c34e971612c..bcba54717484b53687497dc471a1c257793bdf47 100644 --- a/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py +++ b/hpvm/test/dnn_benchmarks/keras/vgg16_imagenet.py @@ -134,7 +134,7 @@ if __name__ == '__main__': alexnet = VGG16('VGG16_imagenet', reload_dir, keras_model_file, data_dir, src_dir, num_classes, batch_size) - alexnet.run(sys.argv) + alexnet.exportToHPVM(sys.argv)