• Stars
    star
    102
  • Rank 335,584 (Top 7 %)
  • Language
    Python
  • License
    Apache License 2.0
  • Created over 7 years ago
  • Updated almost 7 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Minimal Deep Learning library is written in Python/Cython/C++ and Numpy/CUDA/cuDNN.

Aurora: Minimal Deep Learning Library.

Aurora is a minimal deep learning library written in Python, Cython, and C++ with the help of Numpy, CUDA, and cuDNN. Though it is simple, Aurora comes with some advanced design concepts found it a typical deep learning library.

  • Automatic differentiation using static computational graphs.
  • Shape and type inference.
  • Static memory allocation for efficient training and inference.

Installation

Aurora relies on several external libraries including CUDA, cuDNN, and NumPy. For CUDA and cuDNN installation instructions please refer official documentation. Python dependencies can be installed by running the requirements.txt file.

Environment setup

To utilize GPU capabilities of the Aurora library, you need to have a Nvidia GPU. If CUDA toolkit is not already installed, first install the latest version of the CUDA toolkit as well as cuDNN library. Next, set following environment variables.

export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH
Cloning the Repository

You can clone Aurora repository using following command.

git clone https://github.com/upul/Aurora.git

Building the GPU Backend

Next, you need to build GPU backend. So please cuda directory and run make command as shown below.

  1. Go to cuda directory (cd cuda)
  2. Run make
Installing the Library

Go to Aurora directory and run:

  1. pip install -r requirements.txt
  2. pip install .

Examples

Following lists some noticeable examples. For the complete list of examples please refer examples directory. Also, for Jupyter notebooks please refer examples/notebooks folder.

  1. mnist
  2. mnist_cnn

Future Work

Following features will be added in upcoming releases.

  • Dropout and Batch Normalization.
  • High-level API similar to Keras.
  • Ability to load pre-trained models.
  • Model checkpointing.

Acknowledgement

It all started with CSE 599G1: Deep Learning System Design course. This course really helped me to understand fundamentals of Deep Learning System design. My answers to the two programming assignments of CSE 599G1 was the foundation of Aurora library. So I would like to acknowledge with much appreciation the instructors and teaching assistants of the SE 599G1 course.

References.

  1. CSE 599G1: Deep Learning System Design
  2. MXNet Architecture
  3. Parallel Programming With CUDA | Udacity
  4. Programming Massively Parallel Processors, Third Edition: A Hands-on Approach 3rd Edition

More Repositories

1

Behavioral-Cloning

Third Project of the Udacity Self-Driving Car Nanodegree Program
Python
234
star
2

Semantic_Segmentation

Semantic Segmentation using Fully Convolutional Neural Network.
Python
58
star
3

Machine-Learning-Algorithms-From-Scratch

A collection of commonly used machine learning algorithms implemented in Python/Numpy
Jupyter Notebook
46
star
4

Traffic-Signs

Second Project of the Udacity Self-Driving Car Nanodegree Program
HTML
34
star
5

CarND-LaneLines-P1

First Project Udacity's Self-Driving NanoDegree
Jupyter Notebook
23
star
6

logistic_regression

Logistic Regression from the Scratch using Python and Numpy
Jupyter Notebook
13
star
7

WhiteBoard

Proof of Concept (POC) codes to try out different ideas in Machine Learning, Computer Science and Mathematics.
Jupyter Notebook
8
star
8

GNN

Grokking Neural Networks
Python
6
star
9

tensorflow_tutorial

5
star
10

CarND-TensorFlow-Lab

Simple hello world example which shows how to write a convolutional neural network in TensorFlow
Jupyter Notebook
5
star
11

Getting-Started-with-TensorFlow

Getting Started with TensorFlow: How to Build Machine Learning Models using TensorFlow
Jupyter Notebook
2
star
12

CarND-Path-Planning

Path Planning Project of the Udacity's Self-Driving Car Nanodegree Program
C++
2
star
13

CarND-Unscented-Kalman-Filter-Project

Udacity: Unscented Kalman Filter Project
C++
2
star
14

kaggle_titanic

Easy to follow introduction to Machine Learning using Scikit-Learn, Pandas and Python
Jupyter Notebook
2
star
15

CarND-Capstone

CMake
1
star
16

CarND-Extended-Kalman-Filter-Project

Extended Kalman Filter based sensor fusion system written in C++
C++
1
star
17

ML-DS-projects

This Repository Contains a Collections Machine Learning and Data Science Notebooks.
Jupyter Notebook
1
star
18

Chocolate-Quality-Analysis

This repository contains a Jupiter notebook which describes how to use basic machine learning tools such Scikit-Learning, Pandas, and Numpy for buiding models.
Jupyter Notebook
1
star
19

Data-Modeling-with-Postgres

Jupyter Notebook
1
star
20

indi

Small Machine Learning library written in Python
Python
1
star
21

Traffic_Light_Localization_Recognition

Jupyter Notebook
1
star
22

CarND-Kidnapped-Vehicle-Project

Particle Filter Implementation in C++
C++
1
star