Skip to content
This repository has been archived by the owner on Dec 6, 2019. It is now read-only.
/ anmlee Public archive

ANMLEE: A Nascent ML EE (pronounced a·nom·a·ly)

License

Notifications You must be signed in to change notification settings

Consensys/anmlee

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ANMLEE: A Nascent ML EE (pronounced a·nom·a·ly)

!!THIS IS A WORK IN PROGRESS!!

This repo demonstrates how a trained ML model could run inside an Ethereum 2 EE. Currently there is a single random forest classifier model that is trained to determine which of the following types of iris flowers:

  • setosa
  • versicolor
  • virginica

based on the following design variables:

  • sepal length (cm)
  • sepal width (cm)
  • petal length (cm)
  • petal width (cm)

Prerequisits

Install LLVM

brew install llvm
echo 'export PATH="/usr/local/opt/llvm/bin:$PATH"' >> ~/.bash_profile

Install the WebAssembly Binary Toolkit

brew install wabt

Install NinJa

brew install ninja

Build

make build

Run Native

$ ./build/random-forest

Execution time: 0 microseconds


Probabilities: 
1.000000 0.000000 0.000000 

Model Predicts: 
setosa    

Run eWASM

$ ./build/anmlee

Probabilities: 
1.0000 .0000 .0000 

Model Predicts: 
setosa    

Run Benchmark

$ make benchmark
########## Python Benchmark: ###########

Execution time:  107772  microseconds.


 0    setosa
Name: species, dtype: category
Categories (3, object): [setosa, versicolor, virginica] 

########## eWasm Benchmark: ###########
    Finished release [optimized] target(s) in 0.03s
     Running target/release/deps/anmlee-0de6000a8c14c88e

running 1 test

Execution Time: 551.849µs

test tests::test ... ok

test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out

########## C Benchmark: ##########

Execution time: 1 microseconds


Probabilities: 
1.000000 0.000000 0.000000 

Model Predicts: 
setosa    

Benchmark Results

  • Python: 107772 microseconds
  • eWasm: 551.849 microseconds
  • C: 1 microsecond

About

ANMLEE: A Nascent ML EE (pronounced a·nom·a·ly)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published