diff --git a/hpvm/projects/onnx/frontend/approx_codegen.py b/hpvm/projects/onnx/frontend/approx_codegen.py
index 485feef6590893daca494579bc019076242d9253..2a301273f19ddb02c657c4bb5342e22c49729fd7 100644
--- a/hpvm/projects/onnx/frontend/approx_codegen.py
+++ b/hpvm/projects/onnx/frontend/approx_codegen.py
@@ -1,4 +1,4 @@
-class CodeGen:
+class GraphCodeGen:
     def __init__(self, graph):
         self._headers = ""
         self._nodes = ""
@@ -100,7 +100,7 @@ class CodeGen:
         f.write(source)
         f.close()
         
-    def compileModel(self, model, weights_dir, test_data):
+    def codegen(self, model, weights_dir, test_data):
         self.emitHeaders()
         self.emitRoot()
         self.emitMainFunc(test_data)
diff --git a/hpvm/projects/onnx/frontend/graph_builder.py b/hpvm/projects/onnx/frontend/graph_builder.py
index 680a4d1c8c5db8c33106318239d8ccc6056cd08a..b9be0dcf3c02241a3eca3014b51f2fa8183e624f 100644
--- a/hpvm/projects/onnx/frontend/graph_builder.py
+++ b/hpvm/projects/onnx/frontend/graph_builder.py
@@ -178,7 +178,8 @@ class GraphBuilder(object):
             return dtype
 
     ################################################
-    # Graph Building functions
+    # Top level Graph Building functions
+    # return the compile-ready graph
     ################################################
     
     def build_graph(self):
@@ -225,5 +226,6 @@ class GraphBuilder(object):
             #print("input: " + str(node.input))
             #print("output: " + str(node.output))
         #print(self._nodes)
+        return self.dfg
     
         
\ No newline at end of file
diff --git a/hpvm/projects/onnx/frontend/graph_codegen.py b/hpvm/projects/onnx/frontend/graph_codegen.py
index ac78e56b0cca96edb57738663738207029004251..2f63b24e9e175c5447939d52a0e8084c462f2b4d 100644
--- a/hpvm/projects/onnx/frontend/graph_codegen.py
+++ b/hpvm/projects/onnx/frontend/graph_codegen.py
@@ -2,10 +2,10 @@ import sys
 import numpy as np
 import os
 
-from operators import *
-from ir import *
+from graph_builder import *
+from graph_ir import *
         
-class GraphCodegen(object):
+class GraphCodeGen(object):
     def __init__(self, DFG):
         self.program_str = ""
         self.dfg = DFG
@@ -121,4 +121,5 @@ class GraphCodegen(object):
         self.emit_graph()
         self.emit_batch_loop_end()
         self.emit_footer(test_data)
+        # Write the program to source/disk
         self.emit_source(weights_dir)
diff --git a/hpvm/projects/onnx/frontend/main.py b/hpvm/projects/onnx/frontend/main.py
index 97253a3ea55e0bf12f0991461274e07d30e1751e..fdde98fe835073b56be6d78e493ae8c90e5d43e2 100644
--- a/hpvm/projects/onnx/frontend/main.py
+++ b/hpvm/projects/onnx/frontend/main.py
@@ -3,28 +3,34 @@ import sys
 import numpy as np
 import onnx
 import glob
-from onnxruntime.backend.backend import OnnxRuntimeBackend as backend
 
 from onnx import numpy_helper, version_converter
+from onnxruntime.backend.backend import OnnxRuntimeBackend as backend
 
 # onnx2hpvm modules
 from graph_builder import GraphBuilder
-from graph_codegen import GraphCodegen
-
+from graph_codegen import GraphCodeGen
+# from approx_codegen import GraphCodeGen
 
-def main():
-    model = onnx.load('../models/keras/alexnet.onnx')
-    test_data_dir = '../models/mnist/test_data_set_0'
-    #model = onnx.load('../models/mnist/mnist.onnx')
+def convert_version(model):
 
-    # print('The model before conversion:\n{}'.format(model))
+    print('The model before conversion:\n{}'.format(model))
 
     # A full list of supported adapters can be found here:
     # https://github.com/onnx/onnx/blob/master/onnx/version_converter.py#L21
     # Apply the version conversion on the original model
-    # converted_model = version_converter.convert_version(model, 12)
+    converted_model = version_converter.convert_version(model, 12)
+
+    print('The model after conversion:\n{}'.format(converted_model))
+    return converted_model
+
+
+def main():
+    model = onnx.load('../models/keras/alexnet.onnx')
+    weights_dir = './test_src'
+    test_data_dir = '../models/mnist/test_data_set_0'
+    # converted_model = convert_version(model)
 
-    # print('The model after conversion:\n{}'.format(converted_model))
     graph = model.graph
     try:
         opset = model.opset_import[0].version if model.opset_import else 1
@@ -32,9 +38,8 @@ def main():
         opset = 1  # default opset version set to 1 if not specified
     print("opset version: ", opset)
     gBuilder = GraphBuilder(model, None, "float32", opset)
-    gBuilder.build_graph()
-    gCodegen = GraphCodegen(gBuilder.dfg)
-    gCodegen.codegen(weights_dir, test_data, test_labels)
+    gCodegen = GraphCodeGen(gBuilder.build_graph())
+    gCodegen.codegen(weights_dir, test_data)#, test_labels)
 
 
 if __name__ == "__main__":
diff --git a/hpvm/projects/onnx/specs.dump b/hpvm/projects/onnx/specs.dump
new file mode 100644
index 0000000000000000000000000000000000000000..3016325b9bb2f94c3d66f0185408cccfa7cf9a43
--- /dev/null
+++ b/hpvm/projects/onnx/specs.dump
@@ -0,0 +1,1051 @@
+
+Computer
+********
+
+
+Summary
+-------
+
+-Computer-
+Processor		: 40x Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz
+Memory		: 65830MB (28703MB used)
+Operating System		: Ubuntu 16.04.6 LTS
+User Name		: ys26 (Yuanjing Shi)
+Date/Time		: Tue 31 Mar 2020 07:33:16 PM CDT
+-Display-
+Resolution		: 0x0 pixels
+OpenGL Renderer		: Unknown
+X11 Vendor		: (null)
+-Multimedia-
+Audio Adapter		: HDA-Intel - HDA Intel PCH
+Audio Adapter		: HDA-Intel - HDA NVidia
+Audio Adapter		: HDA-Intel - HDA NVidia
+-Input Devices-
+ Power Button
+ Power Button
+ HDA Intel PCH Front Mic
+ HDA Intel PCH Rear Mic
+ HDA Intel PCH Line
+ HDA Intel PCH Line Out Front
+ HDA Intel PCH Line Out Surround
+ HDA Intel PCH Line Out CLFE
+ HDA Intel PCH Front Headphone
+ HDA NVidia HDMI/DP,pcm		: 3=
+ HDA NVidia HDMI/DP,pcm		: 7=
+ HDA NVidia HDMI/DP,pcm		: 8=
+ HDA NVidia HDMI/DP,pcm		: 9=
+ HDA NVidia HDMI/DP,pcm		: 3=
+ HDA NVidia HDMI/DP,pcm		: 7=
+ HDA NVidia HDMI/DP,pcm		: 8=
+ HDA NVidia HDMI/DP,pcm		: 9=
+ Dell Dell USB Keyboard
+ Logitech USB-PS/2 Optical Mouse
+-Printers-
+No printers found
+-SCSI Disks-
+ATA Samsung SSD 850
+ATA Samsung SSD 850
+Generic Ultra HS-SD/MMC
+
+Operating System
+----------------
+
+-Version-
+Kernel		: Linux 4.15.0-66-generic (x86_64)
+Compiled		: #75~16.04.1-Ubuntu SMP Tue Oct 1 14:01:08 UTC 2019
+C Library		: Unknown
+Default C Compiler		: GNU C Compiler version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11) 
+Distribution		: Ubuntu 16.04.6 LTS
+-Current Session-
+Computer Name		: tyler
+User Name		: ys26 (Yuanjing Shi)
+Home Directory		: /home/ys26
+Desktop Environment		: Terminal
+-Misc-
+Uptime		: 67 days, 16 hours and 1 minute
+Load Average		: 19.85, 20.81, 20.51
+
+Kernel Modules
+--------------
+
+-Loaded Modules-
+nvidia_uvm
+nfsv3
+nfs_acl
+nfs
+lockd		: NFS file locking service version 0.5.
+grace
+fscache		: FS Cache Manager
+nvram
+video		: ACPI Video Driver
+msr		: x86 generic MSR driver
+xt_tcpudp		: Xtables: TCP, UDP and UDP-Lite match
+iptable_filter		: iptables filter table
+ip_tables		: IPv4 packet filter
+x_tables		: {ip,ip6,arp,eb}_tables backend module
+input_leds		: Input -> LEDs Bridge
+snd_hda_codec_hdmi		: HDMI HD-audio codec
+binfmt_misc
+xfs		: SGI XFS with ACLs, security attributes, realtime, no debug enabled
+nvidia_drm
+nvidia_modeset
+nvidia
+intel_rapl		: Driver for Intel RAPL (Running Average Power Limit)
+sb_edac		: MC Driver for Intel Sandy Bridge and Ivy Bridge memory controllers -  Ver: 1.1.2
+x86_pkg_temp_thermal		: X86 PKG TEMP Thermal Driver
+intel_powerclamp		: Package Level C-state Idle Injection for Intel CPUs
+coretemp		: Intel Core temperature monitor
+snd_hda_codec_realtek		: Realtek HD-audio codec
+kvm_intel
+snd_hda_codec_generic		: Generic HD-audio codec parser
+kvm
+snd_hda_intel		: Intel HDA driver
+snd_hda_codec		: HDA codec core
+snd_hda_core		: HD-audio bus
+snd_hwdep		: Hardware dependent layer
+irqbypass		: IRQ bypass manager utility module
+snd_pcm		: Midlevel PCM code for ALSA.
+intel_wmi_thunderbolt		: Intel WMI Thunderbolt force power driver
+intel_cstate
+snd_seq_midi		: Advanced Linux Sound Architecture sequencer MIDI synth.
+intel_rapl_perf
+snd_seq_midi_event		: MIDI byte <-> sequencer event coder
+drm_kms_helper		: DRM KMS helper
+snd_rawmidi		: Midlevel RawMidi code for ALSA.
+drm		: DRM shared core routines
+snd_seq		: Advanced Linux Sound Architecture sequencer.
+snd_seq_device		: ALSA sequencer device management
+ipmi_devintf		: Linux device interface for the IPMI message handler.
+snd_timer		: ALSA timer interface
+ipmi_msghandler		: Incoming and outgoing message routing for an IPMI interface.
+fb_sys_fops		: Generic file read (fb in system RAM)
+snd		: Advanced Linux Sound Architecture driver for soundcards.
+syscopyarea		: Generic copyarea (sys-to-sys)
+sysfillrect		: Generic fill rectangle (sys-to-sys)
+sysimgblt		: 1-bit/8-bit to 1-32 bit color expansion (sys-to-sys)
+lpc_ich		: LPC interface for Intel ICH
+soundcore		: Core sound module
+ioatdma
+shpchp		: Standard Hot Plug PCI Controller Driver
+mac_hid
+ib_iser		: iSER (iSCSI Extensions for RDMA) Datamover
+rdma_cm		: Generic RDMA CM Agent
+iw_cm		: iWARP CM
+ib_cm		: InfiniBand CM
+ib_core		: core kernel InfiniBand API
+iscsi_tcp		: iSCSI/TCP data-path
+libiscsi_tcp		: iSCSI/TCP data-path
+libiscsi		: iSCSI library functions
+scsi_transport_iscsi		: iSCSI Transport Interface
+parport_pc		: PC-style parallel port driver
+ppdev
+lp
+parport
+sunrpc
+autofs4
+btrfs
+zstd_compress		: Zstd Compressor
+raid10		: RAID10 (striped mirror) personality for MD
+raid456		: RAID4/5/6 (striping with parity) personality for MD
+async_raid6_recov		: asynchronous RAID-6 recovery api
+async_memcpy		: asynchronous memcpy api
+async_pq		: asynchronous raid6 syndrome generation/validation
+async_xor		: asynchronous xor/xor-zero-sum api
+async_tx		: Asynchronous Bulk Memory Transactions API
+xor
+raid6_pq		: RAID6 Q-syndrome calculations
+libcrc32c		: CRC32c (Castagnoli) calculations
+raid1		: RAID1 (mirroring) personality for MD
+raid0		: RAID0 (striping) personality for MD
+multipath		: simple multi-path personality for MD
+linear		: Linear device concatenation personality for MD
+uas
+usb_storage		: USB Mass Storage driver for Linux
+hid_generic		: HID generic driver
+usbhid		: USB HID core driver
+hid
+mxm_wmi		: MXM WMI Driver
+crct10dif_pclmul		: T10 DIF CRC calculation accelerated with PCLMULQDQ.
+crc32_pclmul
+ghash_clmulni_intel		: GHASH Message Digest Algorithm, acclerated by PCLMULQDQ-NI
+pcbc		: PCBC block cipher algorithm
+igb		: Intel(R) Gigabit Ethernet Network Driver
+aesni_intel		: Rijndael (AES) Cipher Algorithm, Intel AES-NI instructions optimized
+dca
+i2c_algo_bit		: I2C-Bus bit-banging algorithm
+aes_x86_64		: Rijndael (AES) Cipher Algorithm, asm optimized
+ahci		: AHCI SATA low-level driver
+crypto_simd
+ptp		: PTP clocks support
+glue_helper
+cryptd		: Software async crypto daemon
+pps_core		: LinuxPPS support (RFC 2783) - ver. 5.3.6
+libahci		: Common AHCI SATA low-level routines
+wmi		: ACPI-WMI Mapping Driver
+
+Boots
+-----
+
+-Boots-
+Fri Jan 24 02:31		: 44..15.0-66-generi|still
+Mon Nov 18 18:04		: 44..15.0-66-generi|still
+Fri Nov 1 1:52		: 44..15.0-66-generi|-
+Fri Nov 1 1:25		: 44..15.0-66-generi|-
+
+Languages
+---------
+
+-Available Languages-
+en_US.utf8		: English locale for the USA
+
+Filesystems
+-----------
+
+-Mounted File Systems-
+udev	/dev	0.00 % (31.4 GiB of 31.4 GiB)	
+tmpfs	/run	7.15 % (5.8 GiB of 6.3 GiB)	
+/dev/mapper/tyler--vg-root	/	5.81 % (1720.1 GiB of 1826.1 GiB)	
+tmpfs	/dev/shm	0.00 % (31.4 GiB of 31.4 GiB)	
+tmpfs	/run/lock	0.08 % (5.0 MiB of 5.0 MiB)	
+tmpfs	/sys/fs/cgroup	0.00 % (31.4 GiB of 31.4 GiB)	
+/dev/sdb1	/srv/local	9.99 % (1676.1 GiB of 1862.1 GiB)	
+/dev/sdb1	/nix	9.99 % (1676.1 GiB of 1862.1 GiB)	
+/dev/sda2	/boot	11.01 % (3.3 GiB of 3.7 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/deepanv2	/home/deepanv2	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/242233	0.00 % (6.3 GiB of 6.3 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/nz11	/home/nz11	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/1091162	0.00 % (6.3 GiB of 6.3 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/hsharif3	/home/hsharif3	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/641600	0.00 % (6.3 GiB of 6.3 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/bjschre2	/home/bjschre2	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/373498	0.00 % (6.3 GiB of 6.3 GiB)	
+/etc/autofs/cs_vadve/auto.direct	/shared	84.56 % (1580.7 GiB of 10238.0 GiB)	
+engr-linux-siebl1.engr.illinois.edu:/srv/software/megacli-8.07	/software/megacli-8.07	95.35 % (92.6 GiB of 1992.1 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/shared	/shared	84.56 % (1580.7 GiB of 10238.0 GiB)	
+engr-linux-siebl1.engr.illinois.edu:/srv/software/cuda-9.1	/software/cuda-9.1	95.35 % (92.6 GiB of 1992.1 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/yifanz16	/home/yifanz16	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/1086025	0.00 % (6.3 GiB of 6.3 GiB)	
+vadve-file-01.cs.illinois.edu:/srv/home/ys26	/home/ys26	84.56 % (1580.7 GiB of 10238.0 GiB)	
+tmpfs	/run/user/1055463	0.00 % (6.3 GiB of 6.3 GiB)	
+
+Display
+-------
+
+-Display-
+Resolution		: 0x0 pixels
+Vendor		: (null)
+Version		: (null)
+-Monitors-
+-Extensions-
+
+Environment Variables
+---------------------
+
+-Environment Variables-
+MANPATH		: /usr/share/lmod/lmod/share/man::
+NIX_PROFILES		: /nix/var/nix/profiles/default /home/ys26/.nix-profile
+XDG_SESSION_ID		: 14482
+TERM		: xterm-256color
+SHELL		: /bin/bash
+DISTARCH		: Linux-x86_64
+MODULEPATH_ROOT		: /etc/modulefiles/software
+SSH_CLIENT		: 10.251.9.206 64268 22
+CONDA_SHLVL		: 1
+CONDA_PROMPT_MODIFIER		: (base) 
+LMOD_PKG		: /usr/share/lmod/lmod
+LMOD_VERSION		: 7.7.14
+GTK_MODULES		: gail:atk-bridge
+SSH_TTY		: /dev/pts/7
+USER		: ys26
+LMOD_sys		: Linux
+CONDA_EXE		: /home/ys26/anaconda3/bin/conda
+_CE_CONDA
+MAIL		: /var/mail/ys26
+PATH		: /home/ys26/anaconda3/bin:/home/ys26/anaconda3/condabin:/home/ys26/.nix-profile/bin:/nix/var/nix/profiles/default/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/ys26/.local/bin:/home/ys26/bin
+CONDA_PREFIX		: /home/ys26/anaconda3
+NIX_PATH		: nixpkgs=/nix/var/nix/profiles/per-user/root/channels/nixpkgs:/nix/var/nix/profiles/per-user/root/channels
+PWD		: /home/ys26
+LANG		: en_US.UTF-8
+MODULEPATH		: /etc/modulefiles/software/Linux:/etc/modulefiles/software/Core:/usr/share/lmod/lmod/modulefiles/Core:/etc/modulefiles/env:/etc/modulefiles/class:/etc/modulefiles/software
+NIX_SSL_CERT_FILE		: /etc/ssl/certs/ca-certificates.crt
+LMOD_CMD		: /usr/share/lmod/lmod/libexec/lmod
+_CE_M
+KRB5CCNAME		: FILE:/tmp/krb5cc_1055463_itHNAb
+SHLVL		: 1
+HOME		: /home/ys26
+LANGUAGE		: en_US:
+SHOST		: tyler
+BASH_ENV		: /usr/share/lmod/lmod/init/bash
+CONDA_PYTHON_EXE		: /home/ys26/anaconda3/bin/python
+LMOD_arch		: x86_64
+LOGNAME		: ys26
+XDG_DATA_DIRS		: /usr/local/share:/usr/share:/var/lib/snapd/desktop
+SOFTPATH		: /software
+SSH_CONNECTION		: 10.251.9.206 64268 130.126.136.179 22
+MODULESHOME		: /usr/share/lmod/lmod
+CONDA_DEFAULT_ENV		: base
+LMOD_SETTARG_FULL_SUPPORT		: no
+ARCH		: x86_64
+XDG_RUNTIME_DIR		: /run/user/1055463
+LMOD_DIR		: /usr/share/lmod/lmod/libexec
+NIX_USER_PROFILE_DIR		: /nix/var/nix/profiles/per-user/ys26
+BASH_FUNC_module%%		: () {  eval $($LMOD_CMD bash "$@") && eval $(${LMOD_SETTARG_CMD:-:} -s sh)
+
+Users
+-----
+
+-Users-
+root		: root
+daemon		: daemon
+bin		: bin
+sys		: sys
+sync		: sync
+games		: games
+man		: man
+lp		: lp
+mail		: mail
+news		: news
+uucp		: uucp
+proxy		: proxy
+www-data		: www-data
+backup		: backup
+list		: Mailing List Manager
+irc		: ircd
+gnats		: Gnats Bug-Reporting System (admin)
+nobody		: nobody
+systemd-timesync		: systemd Time Synchronization
+systemd-network		: systemd Network Management
+systemd-resolve		: systemd Resolver
+systemd-bus-proxy		: systemd Bus Proxy
+syslog
+_apt
+messagebus
+lxd
+dnsmasq		: dnsmasq
+sshd
+statd
+postfix
+colord		: colord colour management daemon
+ntp
+clamav
+sensu		: Sensu Monitoring Framework
+telegraf
+lightdm		: Light Display Manager
+whoopsie
+avahi-autoipd		: Avahi autoip daemon
+avahi		: Avahi mDNS daemon
+speech-dispatcher		: Speech Dispatcher
+hplip		: HPLIP system user
+kernoops		: Kernel Oops Tracking Daemon
+pulse		: PulseAudio daemon
+rtkit		: RealtimeKit
+saned
+usbmux		: usbmux daemon
+nixbld1		: Nix build user 1
+nixbld2		: Nix build user 2
+nixbld3		: Nix build user 3
+nixbld4		: Nix build user 4
+nixbld5		: Nix build user 5
+nixbld6		: Nix build user 6
+nixbld7		: Nix build user 7
+nixbld8		: Nix build user 8
+nixbld9		: Nix build user 9
+nixbld10		: Nix build user 10
+nixbld11		: Nix build user 11
+nixbld12		: Nix build user 12
+nixbld13		: Nix build user 13
+nixbld14		: Nix build user 14
+nixbld15		: Nix build user 15
+nixbld16		: Nix build user 16
+nixbld17		: Nix build user 17
+nixbld18		: Nix build user 18
+nixbld19		: Nix build user 19
+nixbld20		: Nix build user 20
+nixbld21		: Nix build user 21
+nixbld22		: Nix build user 22
+nixbld23		: Nix build user 23
+nixbld24		: Nix build user 24
+nixbld25		: Nix build user 25
+nixbld26		: Nix build user 26
+nixbld27		: Nix build user 27
+nixbld28		: Nix build user 28
+nixbld29		: Nix build user 29
+nixbld30		: Nix build user 30
+nixbld31		: Nix build user 31
+nixbld32		: Nix build user 32
+
+Devices
+*******
+
+
+Processor
+---------
+
+-Processors-
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2599.98MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2602.97MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2456.45MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2601.63MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.07MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.02MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.03MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.19MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2695.21MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2715.75MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2715.46MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1424.73MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1787.70MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2711.77MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1353.80MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2710.79MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2709.20MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2642.89MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2449.84MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.05MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2599.95MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2600.04MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2706.53MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2675.88MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2792.21MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1358.61MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1748.81MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2611.28MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 1373.20MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2705.52MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2736.24MHz
+Intel(R) Xeon(R) CPU E5-2640 v4 @ 2.40GHz		: 2702.87MHz
+
+Memory
+------
+
+-Memory-
+Total Memory		: 65830480 kB
+Free Memory		: 14031276 kB
+MemAvailable		: 38320820 kB
+Buffers		: 398312 kB
+Cached		: 23096348 kB
+Cached Swap		: 126052 kB
+Active		: 33001128 kB
+Inactive		: 14469604 kB
+Active(anon)		: 23204468 kB
+Inactive(anon)		: 830232 kB
+Active(file)		: 9796660 kB
+Inactive(file)		: 13639372 kB
+Unevictable		: 3684 kB
+Mlocked		: 3684 kB
+Virtual Memory		: 3997692 kB
+Free Virtual Memory		: 2660556 kB
+Dirty		: 136 kB
+Writeback		: 8 kB
+AnonPages		: 23971776 kB
+Mapped		: 1338980 kB
+Shmem		: 63004 kB
+Slab		: 3122640 kB
+SReclaimable		: 1516712 kB
+SUnreclaim		: 1605928 kB
+KernelStack		: 30624 kB
+PageTables		: 108936 kB
+NFS_Unstable		: 0 kB
+Bounce		: 0 kB
+WritebackTmp		: 0 kB
+CommitLimit		: 36912932 kB
+Committed_AS		: 64285764 kB
+VmallocTotal		: 34359738367 kB
+VmallocUsed		: 0 kB
+VmallocChunk		: 0 kB
+HardwareCorrupted		: 0 kB
+AnonHugePages		: 2934784 kB
+ShmemHugePages		: 0 kB
+ShmemPmdMapped		: 0 kB
+CmaTotal		: 0 kB
+CmaFree		: 0 kB
+HugePages_Total		: 0
+HugePages_Free		: 0
+HugePages_Rsvd		: 0
+HugePages_Surp		: 0
+Hugepagesize		: 2048 kB
+DirectMap4k		: 63504064 kB
+DirectMap2M		: 3469312 kB
+DirectMap1G		: 2097152 kB
+
+PCI Devices
+-----------
+
+-PCI Devices-
+Host bridge		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D DMI2 (rev 01)
+PCI bridge		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 1 (rev 01) (prog-if 00 [Normal decode])
+PCI bridge		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D PCI Express Root Port 3 (rev 01) (prog-if 00 [Normal decode])
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 1 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 2 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 3 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 4 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 5 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 6 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 7 (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Map/VTd_Misc/System Management (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO Hot Plug (rev 01)
+System peripheral		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D IIO RAS/Control Status/Global Errors (rev 01)
+PIC		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D I/O APIC (rev 01) (prog-if 20 [IO(X)-APIC])
+
+USB Devices
+-----------
+
+
+Printers
+--------
+
+-Printers-
+No printers found
+
+Battery
+-------
+
+-No batteries-
+No batteries found on this system
+
+Sensors
+-------
+
+-Cooling Fans-
+-Temperatures-
+-Voltage Values-
+
+Input Devices
+-------------
+
+-Input Devices-
+ Power Button
+ Power Button
+ HDA Intel PCH Front Mic
+ HDA Intel PCH Rear Mic
+ HDA Intel PCH Line
+ HDA Intel PCH Line Out Front
+ HDA Intel PCH Line Out Surround
+ HDA Intel PCH Line Out CLFE
+ HDA Intel PCH Front Headphone
+ HDA NVidia HDMI/DP,pcm		: 3=
+ HDA NVidia HDMI/DP,pcm		: 7=
+ HDA NVidia HDMI/DP,pcm		: 8=
+ HDA NVidia HDMI/DP,pcm		: 9=
+ HDA NVidia HDMI/DP,pcm		: 3=
+ HDA NVidia HDMI/DP,pcm		: 7=
+ HDA NVidia HDMI/DP,pcm		: 8=
+ HDA NVidia HDMI/DP,pcm		: 9=
+ Dell Dell USB Keyboard
+ Logitech USB-PS/2 Optical Mouse
+
+Storage
+-------
+
+-SCSI Disks-
+ATA Samsung SSD 850
+ATA Samsung SSD 850
+Generic Ultra HS-SD/MMC
+
+DMI
+---
+
+-BIOS-
+Date		: 11/09/2016
+Vendor		: American Megatrends Inc. (www.ami.com)
+Version		: 2.0a
+-Board-
+Name		: X10DAI
+Vendor		: Supermicro
+
+Resources
+---------
+
+-I/O Ports-
+<tt>0000-0000 </tt>		: PCI Bus 0000:80
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>0000-0000 </tt>		: PCI Bus 0000:80
+<tt>0000-0000 </tt>		: PCI Bus 0000:80
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+<tt>0000-0000 </tt>		: PCI Bus 0000:80
+<tt>  0000-0000 </tt>		: PCI Bus 0000:81
+<tt>    0000-0000 </tt>		: NVIDIA Corporation GP102 [GeForce GTX 1080 Ti] (rev a1) (prog-if 00 [VGA controller])
+-Memory-
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>      00000000-00000000 </tt>		: ICH HD audio
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>00000000-00000000 </tt>		: PCI Bus 0000:80
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+<tt>  00000000-00000000 </tt>		: Intel Corporation Xeon E7 v4/Xeon E5 v4/Xeon E3 v4/Xeon D Crystal Beach DMA Channel 0 (rev 01)
+<tt>    00000000-00000000 </tt>		: ioatdma
+-DMA-
+<tt> 4</tt>		: cascade
+
+Network
+*******
+
+
+Interfaces
+----------
+
+-Network Interfaces-
+eth0	4338573.20MiB	13789563.94MiB	130.126.136.179	
+eth1	0.00MiB	0.00MiB		
+lo	4132.02MiB	4132.02MiB	127.0.0.1	
+
+IP Connections
+--------------
+
+-Connections-
+0.0.0.0:22	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:3030		0.0.0.0:*	udp	
+127.0.0.1:631	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:3031	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:8888	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:25	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:6010	ESTABLISHED	127.0.0.1:59498	tcp	
+0.0.0.0:445	LISTEN	0.0.0.0:*	tcp	
+127.0.0.1:34409	LISTEN	0.0.0.0:*	tcp	
+0.0.0.0:139	LISTEN	0.0.0.0:*	tcp	
+0.0.0.0:47279	LISTEN	0.0.0.0:*	tcp	
+0.0.0.0:111		0.0.0.0:*	udp	
+0.0.0.0:39059	LISTEN	0.0.0.0:*	tcp	
+127.0.1.1:53		0.0.0.0:*	udp	
+127.0.0.1:6010	ESTABLISHED	127.0.0.1:59498	tcp	
+127.0.0.1:59498	ESTABLISHED	127.0.0.1:6010	tcp	
+130.126.136.179:765	ESTABLISHED	172.22.98.29:33920	tcp	
+130.126.136.179:40932	ESTABLISHED	172.22.246.11:4505	tcp	
+130.126.136.179:789	ESTABLISHED	130.126.112.49:2049	tcp	
+130.126.136.179:58444	ESTABLISHED	172.22.6.74:5672	tcp	
+130.126.136.179:37674	ESTABLISHED	172.22.6.146:8086	tcp	
+130.126.136.179:58446	ESTABLISHED	172.22.6.74:5672	tcp	
+130.126.136.179:22	ESTABLISHED	10.251.18.206:65464	tcp	
+130.126.136.179:22	ESTABLISHED	10.251.18.206:65464	tcp	
+130.126.136.179:45112	TIME_WAIT	172.22.98.29:111	tcp	
+130.126.136.179:58442	ESTABLISHED	172.22.6.74:5672	tcp	
+130.126.136.179:33326	ESTABLISHED	172.22.246.13:4505	tcp	
+130.126.136.179:59164	ESTABLISHED	172.22.246.140:4505	tcp	
+130.126.136.179:22	ESTABLISHED	10.251.18.206:65464	tcp	
+130.126.136.179:58440	ESTABLISHED	172.22.6.74:5672	tcp	
+130.126.136.179:745	ESTABLISHED	172.22.98.29:2049	tcp	
+130.126.136.179:51970	ESTABLISHED	172.22.246.14:10514	tcp	
+130.126.136.179:22	ESTABLISHED	10.251.18.206:65464	tcp	
+:::22	LISTEN	:::*	tcp6	
+::1:631	LISTEN	:::*	tcp6	
+::1:6010	LISTEN	:::*	tcp6	
+:::445	LISTEN	:::*	tcp6	
+:::44513	LISTEN	:::*	tcp6	
+:::139	LISTEN	:::*	tcp6	
+:::111		:::*	udp6	
+:::35349	LISTEN	:::*	tcp6	
+0.0.0.0:59373		0.0.0.0:*	udp	
+127.0.1.1:53		0.0.0.0:*	udp	
+0.0.0.0:68		0.0.0.0:*	udp	
+0.0.0.0:111		0.0.0.0:*	udp	
+130.126.136.179:123		0.0.0.0:*	udp	
+127.0.0.1:123		0.0.0.0:*	udp	
+0.0.0.0:123		0.0.0.0:*	udp	
+130.126.139.255:137		0.0.0.0:*	udp	
+130.126.136.179:137		0.0.0.0:*	udp	
+0.0.0.0:137		0.0.0.0:*	udp	
+130.126.139.255:138		0.0.0.0:*	udp	
+130.126.136.179:138		0.0.0.0:*	udp	
+0.0.0.0:138		0.0.0.0:*	udp	
+0.0.0.0:631		0.0.0.0:*	udp	
+127.0.0.1:762		0.0.0.0:*	udp	
+0.0.0.0:773		0.0.0.0:*	udp	
+0.0.0.0:34156		0.0.0.0:*	udp	
+0.0.0.0:34688		0.0.0.0:*	udp	
+127.0.0.1:3030		0.0.0.0:*	udp	
+0.0.0.0:37696		0.0.0.0:*	udp	
+0.0.0.0:5353		0.0.0.0:*	udp	
+0.0.0.0:42410		0.0.0.0:*	udp	
+:::111		:::*	udp6	
+2620:0:e00:550a:5c4:123		:::*	udp6	
+2620:0:e00:550a:4cd:123		:::*	udp6	
+2620:0:e00:550a:f5e:123		:::*	udp6	
+2620:0:e00:550a:c5b:123		:::*	udp6	
+2620:0:e00:550a:cd1:123		:::*	udp6	
+2620:0:e00:550a:dcf:123		:::*	udp6	
+2620:0:e00:550a:d8d:123		:::*	udp6	
+fe80::ec4:7aff:fedc:123		:::*	udp6	
+2620:0:e00:550a:ec4:123		:::*	udp6	
+::1:123		:::*	udp6	
+:::123		:::*	udp6	
+:::773		:::*	udp6	
+:::37708		:::*	udp6	
+:::5353		:::*	udp6	
+:::39262		:::*	udp6	
+:::47288		:::*	udp6	
+:::55076		:::*	udp6	
+
+Routing Table
+-------------
+
+-IP routing table-
+0.0.0.0 / 130.126.136.1	0.0.0.0	UG	eth0	
+130.126.136.0 / 0.0.0.0	255.255.252.0	U	eth0	
+169.254.0.0 / 0.0.0.0	255.255.0.0	U	eth0	
+192.17.2.10 / 130.126.136.1	255.255.255.255	UGH	eth0	
+
+ARP Table
+---------
+
+-ARP Table-
+130.126.136.121	90:b1:1c:2d:31:0e	eth0	
+130.126.136.198	40:a8:f0:47:38:97	eth0	
+130.126.136.1	00:fe:c8:5d:df:ff	eth0	
+130.126.136.110	98:10:e8:f3:a2:4f	eth0	
+130.126.136.247	00:11:32:c3:57:3f	eth0	
+130.126.136.159	c4:34:6b:5e:26:eb	eth0	
+130.126.136.243	00:4e:01:bf:b6:ea	eth0	
+130.126.136.77	bc:30:5b:e0:f9:06	eth0	
+130.126.139.44	98:90:96:dc:55:d9	eth0	
+130.126.136.14	4c:d9:8f:17:1c:e2	eth0	
+130.126.136.73	18:66:da:31:06:6b	eth0	
+130.126.136.63	18:66:da:3d:e2:68	eth0	
+169.254.169.254	00:fe:c8:5d:df:ff	eth0	
+130.126.136.126	20:04:0f:f4:66:74	eth0	
+130.126.139.118	70:85:c2:83:33:0b	eth0	
+130.126.136.210	2c:4d:54:46:4f:ed	eth0	
+130.126.136.195	48:4d:7e:f5:03:b2	eth0	
+130.126.136.55	40:a8:f0:5e:b9:9f	eth0	
+130.126.136.118	90:b1:1c:1a:02:d6	eth0	
+130.126.136.156	04:d4:c4:5b:50:f4	eth0	
+130.126.136.240	e4:54:e8:79:44:68	eth0	
+130.126.136.162	88:51:fb:58:dc:b2	eth0	
+130.126.136.148	6c:2b:59:d5:f9:d2	eth0	
+130.126.136.11	8c:dc:d4:29:8d:28	eth0	
+130.126.136.74	c8:2a:14:1e:91:67	eth0	
+130.126.138.79	74:e6:e2:da:8b:93	eth0	
+130.126.136.7	18:03:73:3c:2e:f1	eth0	
+130.126.136.129	00:25:00:ed:73:7d	eth0	
+130.126.136.245	00:04:4b:dd:43:42	eth0	
+130.126.136.119	90:b1:1c:2d:2a:90	eth0	
+130.126.136.182	90:b1:1c:5e:2c:72	eth0	
+130.126.136.241	e4:54:e8:79:52:be	eth0	
+130.126.136.100	64:00:6a:5f:2e:25	eth0	
+130.126.139.197	6c:3b:e5:14:6c:8f	eth0	
+130.126.136.12	54:bf:64:99:59:02	eth0	
+130.126.136.23	8c:ec:4b:b2:4f:c9	eth0	
+130.126.136.201	fc:aa:14:2f:a7:ab	eth0	
+130.126.136.191	40:6c:8f:24:b1:a4	eth0	
+130.126.138.206	18:66:da:0d:6f:d0	eth0	
+130.126.136.120	90:b1:1c:2d:2e:f8	eth0	
+130.126.136.46	48:4d:7e:e6:a4:16	eth0	
+130.126.138.135	38:c9:86:02:0b:99	eth0	
+130.126.136.105	d0:94:66:7b:67:c0	eth0	
+130.126.136.221	f8:b1:56:c6:32:86	eth0	
+130.126.136.95	00:24:e8:44:aa:a7	eth0	
+130.126.136.28	ac:1f:6b:48:8a:84	eth0	
+130.126.136.242	00:4e:01:bf:6c:ca	eth0	
+130.126.136.76	18:66:da:00:bb:74	eth0	
+130.126.136.97	98:90:96:bc:6f:66	eth0	
+130.126.136.160	ac:87:a3:1f:4e:ca	eth0	
+130.126.136.9	6c:2b:59:c7:ad:19	eth0	
+130.126.136.72	50:9a:4c:59:c3:5a	eth0	
+130.126.136.209	18:66:da:30:64:45	eth0	
+130.126.136.83	00:13:3b:11:6a:a1	eth0	
+130.126.136.5	4c:d9:8f:0c:1e:02	eth0	
+
+DNS Servers
+-----------
+
+-Name servers-
+127.0.1.1
+
+Statistics
+----------
+
+-IP-
+3340235186		: Total packets received
+99269		: With invalid addresses
+0		: Incoming packets discarded
+0		: Incoming packets discarded
+3340132854		: Incoming packets delivered
+1109643438		: Requests sent out
+16		: Outgoing packets dropped
+248929		: Dropped because of missing route
+6126		: Reassemblies required
+3063		: Packets reassembled ok
+-ICMP-
+1355		: ICMP messages received
+19		: Input ICMP message failed.
+7599		: ICMP messages sent
+0		: ICMP messages failed
+-ICMPMSG-
+-TCP-
+26139644		: Active connections openings
+3919		: Passive connection openings
+25871410		: Failed connection attempts
+4562		: Connection resets received
+18		: Connections established
+3302346907		: Segments received
+10359040645		: Segments send out
+2844431		: Segments retransmited
+1		: Bad segments received.
+25878380		: Resets sent
+-UDP-
+24979118		: Packets received
+6362		: Packets to unknown port received.
+4203		: Packet receive errors
+662177		: Packets sent
+-UDPLITE-
+-TCPEXT-
+1		: Resets received for embryonic SYN_RECV sockets
+235858		: TCP sockets finished time wait in fast timer
+171		: Time wait sockets recycled by time stamp
+1825		: Packets rejects in established connections because of timestamp
+6984717		: Delayed acks sent
+3194		: Delayed acks further delayed because of locked socket
+527487290		: Packet headers predicted
+543016884		: Acknowledgments not containing data payload received
+1893599141		: Predicted acknowledgments
+554129		: Times recovered from packet loss by selective acknowledgements
+119		: Congestion windows fully recovered without slow start
+85		: Congestion windows partially recovered using Hoe heuristic
+6456		: Congestion windows recovered without slow start by DSACK
+1683		: Congestion windows recovered without slow start after partial ack
+101		: Timeouts after SACK recovery
+136		: Timeouts in loss state
+2738885		: Fast retransmits
+2730		: Retransmits in slow start
+3141		: Other TCP timeouts
+820		: SACK retransmits failed
+32589		: DSACKs sent for old packets
+607		: DSACKs sent for out of order packets
+84876		: DSACKs received
+567		: DSACKs for out of order packets received
+650		: Connections reset due to unexpected data
+4384		: Connections reset due to early user close
+286		: Connections aborted due to timeout
+3		: Times unabled to send RST due to no memory
+-IPEXT-
+
+Shared Directories
+------------------
+
+-SAMBA-
+-NFS-
+
+Benchmarks
+**********
+
+
+CPU Blowfish
+------------
+
+-CPU Blowfish-
+<big><b>This Machine</b></big>	2600 MHz	0.665	
+Intel(R) Celeron(R) M processor         1.50GHz	(null)	26.1876862	
+PowerPC 740/750 (280.00MHz)	(null)	172.816713	
+
+CPU CryptoHash
+--------------
+
+-CPU CryptoHash-
+<big><b>This Machine</b></big>	2600 MHz	1697.719	
+
+CPU Fibonacci
+-------------
+
+-CPU Fibonacci-
+<big><b>This Machine</b></big>	2600 MHz	2.166	
+Intel(R) Celeron(R) M processor         1.50GHz	(null)	8.1375674	
+PowerPC 740/750 (280.00MHz)	(null)	58.07682	
+
+CPU N-Queens
+------------
+
+-CPU N-Queens-
+<big><b>This Machine</b></big>	2600 MHz	0.592	
+
+FPU FFT
+-------
+
+-FPU FFT-
+<big><b>This Machine</b></big>	2600 MHz	1.072	
+
+FPU Raytracing
+--------------
+
+-FPU Raytracing-
+<big><b>This Machine</b></big>	2600 MHz	6.178	
+Intel(R) Celeron(R) M processor         1.50GHz	(null)	40.8816714	
+PowerPC 740/750 (280.00MHz)	(null)	161.312647	
diff --git a/hpvm/projects/onnx/src/alexnet.ipynb b/hpvm/projects/onnx/src/alexnet.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..24d5fadee55e551bf33f3d0b4d6e0c581f330cb5
--- /dev/null
+++ b/hpvm/projects/onnx/src/alexnet.ipynb
@@ -0,0 +1,198 @@
+{
+ "cells": [
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stderr",
+     "output_type": "stream",
+     "text": [
+      "Using TensorFlow backend.\n"
+     ]
+    }
+   ],
+   "source": [
+    "import numpy as np\n",
+    "from keras.datasets import cifar10\n",
+    "from keras.models import Sequential\n",
+    "from keras.layers.core import Dense, Dropout, Flatten, Activation\n",
+    "from keras.layers.convolutional import Conv2D\n",
+    "from keras.optimizers import Adam\n",
+    "from keras.layers.pooling import MaxPooling2D\n",
+    "from keras.utils.np_utils import to_categorical\n",
+    "from keras.preprocessing.image import ImageDataGenerator\n",
+    "from keras import backend as K\n",
+    "from keras import regularizers\n",
+    "from keras.callbacks import LearningRateScheduler\n",
+    "import sys\n",
+    "import struct\n",
+    "import keras\n",
+    "import numpy as np\n",
+    "import os"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def buildModel2():\n",
+    "\n",
+    "    activation_type = \"tanh\"\n",
+    "    weight_decay = 1e-4\n",
+    "    \n",
+    "    model = Sequential()\n",
+    "    model.add(Conv2D(64, kernel_size=(11, 11), activation=activation_type,\n",
+    "                     input_shape=(3, 32, 32), padding = 'same',\n",
+    "                     kernel_regularizer=regularizers.l2(weight_decay) ))\n",
+    "    model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2) ))\n",
+    "    model.add(Dropout(0.2))\n",
+    "    model.add(Conv2D(192, kernel_size=(5, 5), activation=activation_type, padding = 'same',\n",
+    "                     kernel_regularizer=regularizers.l2(weight_decay)))\n",
+    "    model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2) ))\n",
+    "    model.add(Dropout(0.3))\n",
+    "\n",
+    "    model.add(Conv2D(384, kernel_size=(3, 3), activation=activation_type, padding = 'same',\n",
+    "                     kernel_regularizer=regularizers.l2(weight_decay) ))   \n",
+    "    model.add(Conv2D(256, kernel_size=(3, 3), activation=activation_type, padding = 'same',\n",
+    "                     kernel_regularizer=regularizers.l2(weight_decay) ))\n",
+    "    model.add(Conv2D(256, kernel_size=(3, 3), activation=activation_type, padding = 'same',\n",
+    "                     kernel_regularizer=regularizers.l2(weight_decay) ))\n",
+    "    model.add(MaxPooling2D(pool_size=(2, 2), strides=(2,2) ))\n",
+    "    model.add(Dropout(0.4))\n",
+    "\n",
+    "    model.add(Flatten())\n",
+    "    #model.add(Flatten())\n",
+    "    #model.add(Dense(256))\n",
+    "    model.add(Dense(10))\n",
+    "    model.add(Activation('softmax'))\n",
+    "    \n",
+    "    return model"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def trainModel(model):\n",
+    "\n",
+    "    (X_train, Y_train), (X_test, Y_test) = cifar10.load_data()\n",
+    "    test_labels = Y_test\n",
+    "    train_labels = Y_train\n",
+    "\n",
+    "    #X_train = X_train.astype('float32')\n",
+    "    #X_test = X_test.astype('float32')\n",
+    "    X_train = X_train / 255.0\n",
+    "    X_test = X_test / 255.0\n",
+    "    \n",
+    "    mean = np.mean(X_train,axis=(0,1,2,3))\n",
+    "    std = np.std(X_train,axis=(0,1,2,3))   \n",
+    "    X_train = (X_train-mean)/(std+1e-7)\n",
+    "    X_test = (X_test-mean)/(std+1e-7)\n",
+    "    \n",
+    "    dir_prefix = \"/home/hsharif3/Gitlab/hpvm/llvm/projects/hpvm-tensor-rt/model_params/alexnet_cifar10/\"\n",
+    "\n",
+    "    #opt_rms = keras.optimizers.rmsprop(lr=0.001,decay=1e-6)\n",
+    "    # Compile the model\n",
+    "    model.compile(loss='categorical_crossentropy',\n",
+    "                  optimizer=Adam(lr=0.0001, decay=1e-6),\n",
+    "                  #optimizer = opt_rms,\n",
+    "                  metrics=['accuracy'])\n",
+    "\n",
+    "    #print to_categorical(Y_train, 10)\n",
+    "    print (to_categorical(Y_train))\n",
+    "\n",
+    "\n",
+    "    datagen = ImageDataGenerator(\n",
+    "        rotation_range=15,\n",
+    "        width_shift_range=0.1,\n",
+    "        height_shift_range=0.1,\n",
+    "        horizontal_flip=True,\n",
+    "        )\n",
+    "    datagen.fit(X_train)\n",
+    "\n",
+    "    \n",
+    "    model.fit(X_train, to_categorical(Y_train, 10),\n",
+    "              batch_size=128,\n",
+    "              shuffle=True,\n",
+    "              epochs = 1,\n",
+    "              #epochs=100,\n",
+    "              validation_data=(X_test, to_categorical(Y_test, 10)), callbacks=[LearningRateScheduler(lr_schedule)])\n",
+    "\n",
+    "    # Evaluate the model\n",
+    "    scores = model.evaluate(X_test, to_categorical(Y_test, 10))\n",
+    "\n",
+    "    print('Loss: %.3f' % scores[0])\n",
+    "    print('Accuracy: %.3f' % scores[1])\n",
+    "        \n",
+    "    print (\"*** TRAINED MODEL ****\\n\")"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "metadata": {},
+   "outputs": [
+    {
+     "ename": "AttributeError",
+     "evalue": "module 'tensorflow_core._api.v2.config' has no attribute 'experimental_list_devices'",
+     "output_type": "error",
+     "traceback": [
+      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+      "\u001b[0;31mAttributeError\u001b[0m                            Traceback (most recent call last)",
+      "\u001b[0;32m<ipython-input-6-913f2a0d099c>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0mK\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_image_data_format\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'channels_first'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m \u001b[0mmodel\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mbuildModel2\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m \u001b[0mtrainModel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmodel\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m<ipython-input-4-9d348f64e01f>\u001b[0m in \u001b[0;36mbuildModel2\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m     model.add(Conv2D(64, kernel_size=(11, 11), activation=activation_type,\n\u001b[1;32m      8\u001b[0m                      \u001b[0minput_shape\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m32\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m32\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpadding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'same'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 9\u001b[0;31m                      kernel_regularizer=regularizers.l2(weight_decay) ))\n\u001b[0m\u001b[1;32m     10\u001b[0m     \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mMaxPooling2D\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpool_size\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstrides\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     11\u001b[0m     \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mDropout\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0.2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/engine/sequential.py\u001b[0m in \u001b[0;36madd\u001b[0;34m(self, layer)\u001b[0m\n\u001b[1;32m    164\u001b[0m                     \u001b[0;31m# and create the node connecting the current layer\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    165\u001b[0m                     \u001b[0;31m# to the input layer we just created.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 166\u001b[0;31m                     \u001b[0mlayer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    167\u001b[0m                     \u001b[0mset_inputs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mTrue\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    168\u001b[0m             \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36msymbolic_fn_wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m     73\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0m_SYMBOLIC_SCOPE\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalue\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     74\u001b[0m             \u001b[0;32mwith\u001b[0m \u001b[0mget_graph\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mas_default\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 75\u001b[0;31m                 \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     76\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m     77\u001b[0m             \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/engine/base_layer.py\u001b[0m in \u001b[0;36m__call__\u001b[0;34m(self, inputs, **kwargs)\u001b[0m\n\u001b[1;32m    487\u001b[0m             \u001b[0;31m# Actually call the layer,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    488\u001b[0m             \u001b[0;31m# collecting output(s), mask(s), and shape(s).\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 489\u001b[0;31m             \u001b[0moutput\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcall\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    490\u001b[0m             \u001b[0moutput_mask\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mcompute_mask\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0minputs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprevious_mask\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    491\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/layers/convolutional.py\u001b[0m in \u001b[0;36mcall\u001b[0;34m(self, inputs)\u001b[0m\n\u001b[1;32m    169\u001b[0m                 \u001b[0mpadding\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpadding\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    170\u001b[0m                 \u001b[0mdata_format\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdata_format\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 171\u001b[0;31m                 dilation_rate=self.dilation_rate)\n\u001b[0m\u001b[1;32m    172\u001b[0m         \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrank\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    173\u001b[0m             outputs = K.conv3d(\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36mconv2d\u001b[0;34m(x, kernel, strides, padding, data_format, dilation_rate)\u001b[0m\n\u001b[1;32m   3699\u001b[0m     \u001b[0mdata_format\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnormalize_data_format\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3700\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3701\u001b[0;31m     \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtf_data_format\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_preprocess_conv2d_input\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdata_format\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3702\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3703\u001b[0m     \u001b[0mpadding\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_preprocess_padding\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mpadding\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m_preprocess_conv2d_input\u001b[0;34m(x, data_format, force_transpose)\u001b[0m\n\u001b[1;32m   3572\u001b[0m     \u001b[0mtf_data_format\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m'NHWC'\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3573\u001b[0m     \u001b[0;32mif\u001b[0m \u001b[0mdata_format\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;34m'channels_first'\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 3574\u001b[0;31m         \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0m_has_nchw_support\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mforce_transpose\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m   3575\u001b[0m             \u001b[0mx\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtranspose\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m3\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m  \u001b[0;31m# NCHW -> NHWC\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m   3576\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m_has_nchw_support\u001b[0;34m()\u001b[0m\n\u001b[1;32m    520\u001b[0m     \"\"\"\n\u001b[1;32m    521\u001b[0m     \u001b[0mexplicitly_on_cpu\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_is_current_explicit_device\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'cpu'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 522\u001b[0;31m     \u001b[0mgpus_available\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0m_get_available_gpus\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m>\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    523\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0;32mnot\u001b[0m \u001b[0mexplicitly_on_cpu\u001b[0m \u001b[0;32mand\u001b[0m \u001b[0mgpus_available\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    524\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;32m~/opt/anaconda3/lib/python3.7/site-packages/keras/backend/tensorflow_backend.py\u001b[0m in \u001b[0;36m_get_available_gpus\u001b[0;34m()\u001b[0m\n\u001b[1;32m    504\u001b[0m             \u001b[0m_LOCAL_DEVICES\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdevices\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    505\u001b[0m         \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 506\u001b[0;31m             \u001b[0m_LOCAL_DEVICES\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mtf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconfig\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mexperimental_list_devices\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m    507\u001b[0m     \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mx\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0m_LOCAL_DEVICES\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;34m'device:gpu'\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlower\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m    508\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
+      "\u001b[0;31mAttributeError\u001b[0m: module 'tensorflow_core._api.v2.config' has no attribute 'experimental_list_devices'"
+     ]
+    }
+   ],
+   "source": [
+    "    K.set_image_data_format('channels_first')\n",
+    "\n",
+    "    model = buildModel2()\n",
+    "    trainModel(model)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Python 3",
+   "language": "python",
+   "name": "python3"
+  },
+  "language_info": {
+   "codemirror_mode": {
+    "name": "ipython",
+    "version": 3
+   },
+   "file_extension": ".py",
+   "mimetype": "text/x-python",
+   "name": "python",
+   "nbconvert_exporter": "python",
+   "pygments_lexer": "ipython3",
+   "version": "3.7.4"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}
diff --git a/hpvm/projects/onnx/src/alexnet.py b/hpvm/projects/onnx/src/keras_models/alexnet.py
similarity index 100%
rename from hpvm/projects/onnx/src/alexnet.py
rename to hpvm/projects/onnx/src/keras_models/alexnet.py
diff --git a/hpvm/projects/onnx/src/alexnet2.py b/hpvm/projects/onnx/src/keras_models/alexnet2.py
similarity index 100%
rename from hpvm/projects/onnx/src/alexnet2.py
rename to hpvm/projects/onnx/src/keras_models/alexnet2.py
diff --git a/hpvm/projects/onnx/src/lenet.py b/hpvm/projects/onnx/src/keras_models/lenet.py
similarity index 100%
rename from hpvm/projects/onnx/src/lenet.py
rename to hpvm/projects/onnx/src/keras_models/lenet.py
diff --git a/hpvm/projects/onnx/src/mnist.ipynb b/hpvm/projects/onnx/src/keras_models/mnist.ipynb
similarity index 100%
rename from hpvm/projects/onnx/src/mnist.ipynb
rename to hpvm/projects/onnx/src/keras_models/mnist.ipynb
diff --git a/hpvm/projects/onnx/src/mobilenet_cifar10.py b/hpvm/projects/onnx/src/keras_models/mobilenet_cifar10.py
similarity index 100%
rename from hpvm/projects/onnx/src/mobilenet_cifar10.py
rename to hpvm/projects/onnx/src/keras_models/mobilenet_cifar10.py
diff --git a/hpvm/projects/onnx/src/mobilenet_shallow.py b/hpvm/projects/onnx/src/keras_models/mobilenet_shallow.py
similarity index 100%
rename from hpvm/projects/onnx/src/mobilenet_shallow.py
rename to hpvm/projects/onnx/src/keras_models/mobilenet_shallow.py
diff --git a/hpvm/projects/onnx/src/mobilenetv2_cifar10.py b/hpvm/projects/onnx/src/keras_models/mobilenetv2_cifar10.py
similarity index 100%
rename from hpvm/projects/onnx/src/mobilenetv2_cifar10.py
rename to hpvm/projects/onnx/src/keras_models/mobilenetv2_cifar10.py
diff --git a/hpvm/projects/onnx/src/resnet.py b/hpvm/projects/onnx/src/keras_models/resnet.py
similarity index 100%
rename from hpvm/projects/onnx/src/resnet.py
rename to hpvm/projects/onnx/src/keras_models/resnet.py
diff --git a/hpvm/projects/onnx/src/vgg16_cifar10.py b/hpvm/projects/onnx/src/keras_models/vgg16_cifar10.py
similarity index 100%
rename from hpvm/projects/onnx/src/vgg16_cifar10.py
rename to hpvm/projects/onnx/src/keras_models/vgg16_cifar10.py
diff --git a/hpvm/projects/onnx/src/vgg16_cifar100.py b/hpvm/projects/onnx/src/keras_models/vgg16_cifar100.py
similarity index 100%
rename from hpvm/projects/onnx/src/vgg16_cifar100.py
rename to hpvm/projects/onnx/src/keras_models/vgg16_cifar100.py
diff --git a/hpvm/projects/onnx/src/onnx_test.py b/hpvm/projects/onnx/src/onnx_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..39b62ed19829cc474532e9241a5cfa220d9f5219
--- /dev/null
+++ b/hpvm/projects/onnx/src/onnx_test.py
@@ -0,0 +1,8 @@
+import os
+import sys
+import numpy as np
+import onnx
+import glob
+
+from onnx import numpy_helper, version_converter
+from onnxruntime.backend.backend import OnnxRuntimeBackend as backend