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.
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.
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 |
- 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
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.
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 |
More examples can be found here.
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}},
}
Source codes in the repository follows MIT license.
References are listed in wiki