jacobian

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 400bc3fc89df265d386cdef4d070846e4554859e
parent 3bb690075cabdccba5d8f0d72dca8b1a240ddcf0
Author: David Freifeld <freifeld.david@gmail.com>
Date:   Mon, 29 Jun 2020 20:45:56 -0700

Added nice-looking banner?

Diffstat:
Apictures/banner.png | 0
Rgraphs/batch_size.png -> pictures/batch_size.png | 0
Rgraphs/full_batch_size.png -> pictures/full_batch_size.png | 0
Apictures/logo.png | 0
Rgraphs/runtime.png -> pictures/runtime.png | 0
Mreadme.md | 10+++++-----
6 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/pictures/banner.png b/pictures/banner.png Binary files differ. diff --git a/graphs/batch_size.png b/pictures/batch_size.png Binary files differ. diff --git a/graphs/full_batch_size.png b/pictures/full_batch_size.png Binary files differ. diff --git a/pictures/logo.png b/pictures/logo.png Binary files differ. diff --git a/graphs/runtime.png b/pictures/runtime.png Binary files differ. diff --git a/readme.md b/readme.md @@ -1,19 +1,19 @@ -# ML in Parallel +![Banner](./pictures/banner.png) ## About -"ML in Parallel" (better name pending) is a work-in-progress machine learning library written in C++ designed to run as fast as possible. Parallelization will be achieved by utilizing Google's powerful MapReduce framework with [a custom implementation in C](https://github.com/richardfeynmanrocks/mapreduce), and the compiled nature of C++/C as well as the optimizations enabled by compilers enable further speedups. On the same benchmark task (of running a small neural network for 50 epochs on a specified dataset) In some preliminary benchmarks "ML in Parallel" has ran up to ~90-110x faster than a simple Keras program. This library is also easily accessible and initializing and using a neural network can be done in just 10 lines of code. +Jacobian is a work-in-progress machine learning library written in C++ designed to run as fast as possible. Parallelization will be achieved by utilizing Google's powerful MapReduce framework with [a custom implementation in C](https://github.com/richardfeynmanrocks/mapreduce), and the compiled nature of C++/C as well as the optimizations enabled by compilers enable further speedups. On the same benchmark task (of running a small neural network for 50 epochs on a specified dataset) In some preliminary benchmarks Jacobian has ran up to ~90-110x faster than a simple Keras program. This library is also easily accessible and initializing and using a neural network can be done in just 10 lines of code. ## Benchmark Info Batch size of model vs. total runtime for this project and Keras (Keras was slow enough that it moves in steps of 20 and starts at a batch size of 20. In reality, the spike at the beginning is much larger for lower batch sizes but it throws the graph off so much you can't see any detail from MIP): -![Batch Size vs. Runtime](./graphs/batch_size.png) +![Batch Size vs. Runtime](./pictures/batch_size.png) Average runtime for batch size of 10 for 10 trials: -![Runtime Comparison](./graphs/runtime.png) +![Runtime Comparison](./pictures/runtime.png) -Coming soon: A more detailed rundown of the speed of "ML in Parallel" vs popular machine learning libraries for Python (and eventually comparisons to C++ libraries as well) as well as a handy and flexible Python script for creating benchmark graphs on the fly. +Coming soon: A more detailed rundown of the speed of Jacobian vs popular machine learning libraries for Python (and eventually comparisons to C++ libraries as well) as well as a handy and flexible Python script for creating benchmark graphs on the fly. ## Usage As of now using "ML in Parallel" inside C++ code requires manual building.