All Projects → cair → fast-tsetlin-machine-in-cuda-with-imdb-demo

cair / fast-tsetlin-machine-in-cuda-with-imdb-demo

Licence: MIT license
A CUDA implementation of the Tsetlin Machine based on bitwise operators

Programming Languages

Cuda
1817 projects
python
139335 projects - #7 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to fast-tsetlin-machine-in-cuda-with-imdb-demo

fast-tsetlin-machine-with-mnist-demo
A fast Tsetlin Machine implementation employing bit-wise operators, with MNIST demo.
Stars: ✭ 58 (+123.08%)
Mutual labels:  pattern-recognition, bitwise-operators, tsetlin-machine
LvArray
Portable HPC Containers (C++)
Stars: ✭ 37 (+42.31%)
Mutual labels:  gpu-computing
opensbli
A framework for the automated derivation and parallel execution of finite difference solvers on a range of computer architectures.
Stars: ✭ 56 (+115.38%)
Mutual labels:  gpu-computing
xai-iml-sota
Interesting resources related to Explainable Artificial Intelligence, Interpretable Machine Learning, Interactive Machine Learning, Human in Loop and Visual Analytics.
Stars: ✭ 51 (+96.15%)
Mutual labels:  explainable-artificial-intelligence
Forex-and-Stock-Python-Pattern-Recognizer
A machine learning program that is able to recognize patterns inside Forex or stock data
Stars: ✭ 134 (+415.38%)
Mutual labels:  pattern-recognition
Semantic-Aware-Scene-Recognition
Pytorch Implementation of Semantic-Aware Scene Recognition Paper
Stars: ✭ 82 (+215.38%)
Mutual labels:  pattern-recognition
Mathai
一个拍照做题程序。输入一张包含数学计算题的图片,输出识别出的数学计算式以及计算结果。This is a mathematic expression recognition project.
Stars: ✭ 1,965 (+7457.69%)
Mutual labels:  pattern-recognition
PetIBM
PetIBM - toolbox and applications of the immersed-boundary method on distributed-memory architectures
Stars: ✭ 80 (+207.69%)
Mutual labels:  gpu-computing
Awesome-Human-Activity-Recognition
An up-to-date & curated list of Awesome IMU-based Human Activity Recognition(Ubiquitous Computing) papers, methods & resources. Please note that most of the collections of researches are mainly based on IMU data.
Stars: ✭ 72 (+176.92%)
Mutual labels:  pattern-recognition
CUDAfy.NET
CUDAfy .NET allows easy development of high performance GPGPU applications completely from the .NET. It's developed in C#.
Stars: ✭ 56 (+115.38%)
Mutual labels:  gpu-computing
gpuowl
GPU Mersenne primality test.
Stars: ✭ 77 (+196.15%)
Mutual labels:  gpu-computing
gpuvmem
GPU Framework for Radio Astronomical Image Synthesis
Stars: ✭ 27 (+3.85%)
Mutual labels:  gpu-computing
bspl
Bit-Shift-Print Loop
Stars: ✭ 17 (-34.62%)
Mutual labels:  bitwise-operators
notebooks
A docker-based starter kit for machine learning via jupyter notebooks. Designed for those who just want a runtime environment and get on with machine learning. Docker tags:
Stars: ✭ 29 (+11.54%)
Mutual labels:  gpu-computing
scikit-cycling
Tools to analyze cycling data
Stars: ✭ 25 (-3.85%)
Mutual labels:  pattern-recognition
Higra
Hierarchical Graph Analysis
Stars: ✭ 84 (+223.08%)
Mutual labels:  pattern-recognition
3D-GuidedGradCAM-for-Medical-Imaging
This Repo containes the implemnetation of generating Guided-GradCAM for 3D medical Imaging using Nifti file in tensorflow 2.0. Different input files can be used in that case need to edit the input to the Guided-gradCAM model.
Stars: ✭ 60 (+130.77%)
Mutual labels:  explainable-artificial-intelligence
hiperc
High Performance Computing Strategies for Boundary Value Problems
Stars: ✭ 36 (+38.46%)
Mutual labels:  gpu-computing
gardenia
GARDENIA: Graph Analytics Repository for Designing Efficient Next-generation Accelerators
Stars: ✭ 22 (-15.38%)
Mutual labels:  gpu-computing
CARE
CHAI and RAJA provide an excellent base on which to build portable codes. CARE expands that functionality, adding new features such as loop fusion capability and a portable interface for many numerical algorithms. It provides all the basics for anyone wanting to write portable code.
Stars: ✭ 22 (-15.38%)
Mutual labels:  gpu-computing

Tsetlin Machine with Bitwise Operators Implemented in CUDA

A CUDA implementation of the Tsetlin Machine (https://arxiv.org/abs/1804.01508) using bitwise operations for increased learning- and classification speed. On the IMDB dataset, parallel bit manipulation with CUDA leads to approx. 50 times faster learning compared to the vanilla Cython (https://github.com/cair/TsetlinMachine) and C (https://github.com/cair/TsetlinMachineC) implementations.

Bit-Based Representation and Manipulation of Patterns

The Tsetlin Machine solves complex pattern recognition problems with propositional formulas, composed by a collective of Tsetlin Automata. In this implementation, we express both inputs, patterns, and outputs as bits, while recognition and learning rely on bit manipulation. Briefly stated, the states of the Tsetlin Automata are jointly represented using multiple sequences of bits (e.g., 8 sequences to represent an 8 bit state index). Sequence 1 contains the first bit of each state index. Sequence 2 contains the second bit, and so on, as exemplified below for 24 Tsetlin Automata:

Figure 4

The benefit of this representation is that the action of each Tsetlin Automaton is readily available from the most significant bit (sequence 8 in the figure). Thus, the output (recognized or not recognized pattern) can be obtained from the input based on fast bitwise operators (NOT, AND, and CMP - comparison). When deployed after training, only the sequence containing the most significant bit is required. The other sequences can be discarded because these bits are only used to keep track of the learning. This provides a further reduction in memory usage.

IMDB Demo

python ./produce_dataset.py
make
./IMDBDemoCUDABits

Num SMS: 80

EXPERIMENT 1

##### EPOCH 1 #####

-- CLASS 1 --

PRECISION: 0.876
RECALL: 0.856
F-SCORE: 0.866

-- CLASS 2 --

PRECISION: 0.859
RECALL: 0.878
F-SCORE: 0.869

TRAINING TIME: 28.366195
TESTING TIME: 19.398722

##### EPOCH 2 #####

-- CLASS 1 --

PRECISION: 0.874
RECALL: 0.869
F-SCORE: 0.872

-- CLASS 2 --

PRECISION: 0.870
RECALL: 0.875
F-SCORE: 0.872

TRAINING TIME: 29.422352
TESTING TIME: 19.346641

##### EPOCH 3 #####

-- CLASS 1 --

PRECISION: 0.877
RECALL: 0.877
F-SCORE: 0.877

-- CLASS 2 --

PRECISION: 0.877
RECALL: 0.877
F-SCORE: 0.877

TRAINING TIME: 29.098980
TESTING TIME: 19.351734
...

##### EPOCH 98 #####

-- CLASS 1 --

PRECISION: 0.903
RECALL: 0.888
F-SCORE: 0.895

-- CLASS 2 --

PRECISION: 0.890
RECALL: 0.905
F-SCORE: 0.897

TRAINING TIME: 26.510541
TESTING TIME: 19.653829

##### EPOCH 99 #####

-- CLASS 1 --

PRECISION: 0.909
RECALL: 0.883
F-SCORE: 0.896

-- CLASS 2 --

PRECISION: 0.886
RECALL: 0.911
F-SCORE: 0.899

TRAINING TIME: 26.439740
TESTING TIME: 19.726412

##### EPOCH 100 #####

-- CLASS 1 --

PRECISION: 0.916
RECALL: 0.873
F-SCORE: 0.894

-- CLASS 2 --

PRECISION: 0.879
RECALL: 0.920
F-SCORE: 0.899

TRAINING TIME: 25.989568
TESTING TIME: 19.775639

Further Work

  • Perform a more extensive hyperparameter search (manipulating THRESHOLD, CLAUSES, STATE_BITS, and S in TsetlinMachineConfig.h).
  • Convolutional approach for more fine-grained modelling of semantics.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].