lvrcek / Qualia2.0

Qualia2.0 is a deep learning framework deeply integrated with automatic differentiation and dynamic graphing with CUDA acceleration. Qualia2.0 was built from scratch with pure python3 code.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Qualia Logo

Qualia is a deep learning framework deeply integrated with automatic differentiation and dynamic graphing with CUDA acceleration. Thanks to the define-by-run API, the code written with Qualia enjoys high modularity.

Introduction

David J. Chalmers, an Australian philosopher and cognitive scientist, onece argued that if a system reproduces the functional organization of the brain, it will also reproduce the qualia associated with the brain in the paper "Absent Qualia, Fading Qualia, Dancing Qualia." This library "Qualia" named after the series of arguments in philosophy of mind associated with the qualia, hoping for the creation of a system with subjective consciousness.

Overview

Build Version Size License: MIT

The main components of Qualia2.0 is listed below:

Component Description
qualia2.autograd provides a Tensor object for a dynamic automatic differentiation
qualia2.functions pre-defined functions capable of automatic differentiation
qualia2.nn a neural networks library deeply integrated with autograd with CUDA acceleration
qualia2.data datasets for handy testing
qualia2.rl reinforcement learning models and utilities
qualia2.util utility functions for convenience
qualia2.vision pretrained model architectures for computer vision

Requirements

  • NVIDIA CUDA GPU: Compute Capability of the GPU must be at least 3.0.
  • CUDA Toolkit: Supported Versions: 8.0, 9.0, 9.1, 9.2, 10.0, and 10.1. (Note: Qualia2.0 is also available for CPU use)
  • Python 3.6

Installation

Upgrade of setuptools and pip is recommended before the installation:

$ pip install -U setuptools pip

CUDA Toolkit version can be found by:

$ nvcc --version

Depending on the CUDA version you have installed on your host, choose the best option from following.

(For CUDA 8.0)
$ python setup.py install --cuda 80
(For CUDA 9.0)
$ python setup.py install --cuda 90
(For CUDA 9.1)
$ python setup.py install --cuda 91
(For CUDA 9.2)
$ python setup.py install --cuda 92
(For CUDA 10.0)
$ python setup.py install --cuda 100
(For CUDA 10.1)
% python setup.py install --cuda 101
(For without CUDA)
$ python setup.py install

See more in wiki.

Tutorial

Detailed tutorial of Qualia2.0 can be found here.

Component Description
Automatic Differentiation usage of automatic differentiation with a simple example
Validation of Automatic Differentiation numerical method to validate automatic differentiation
Qualia Tensor Tensor class for automatic differentiation in Qualia
Network Definition create a custom neural network model with Qualia
Model Summary get the summary of the neural network model
Saving/Loading Weights save and load the trained weights
Setting up Optimizer preparing optimizers to train a neural network
Learning Qualia with Examples introducing Qualia2.0 with some of the impremented examples

Examples

More examples can be found here.

Citation

Please cite Qualia if you use the contents in this repository for your research or in a scientific publication.

Y. Kashu, Qualia2.0 - Automatic Differentiation and Dynamic Graphing with CUDA for Deep Learning Application, (2019), GitHub repository, https://github.com/Kashu7100/Qualia2.0

BibTex

@misc{qualia,
  author = {Kashu Yamazaki},
  title = {{Q}ualia2.0},
  year = {2019},
  publisher = {GitHub},
  journal = {GitHub repository},
  keywords = {Python, Automatic Differentiation, Dynamic Graphing, CUDA, Deep Learning}
  howpublished  = {\url{https://github.com/Kashu7100/Qualia2.0}},
}

License

Source codes in the repository follows MIT license.

References

References are listed in wiki

About

Qualia2.0 is a deep learning framework deeply integrated with automatic differentiation and dynamic graphing with CUDA acceleration. Qualia2.0 was built from scratch with pure python3 code.

License:MIT License


Languages

Language:Python 83.2%Language:Jupyter Notebook 16.8%