All Projects → f0uriest → keras2c

f0uriest / keras2c

Licence: MIT License
A simple library to deploy Keras neural networks in pure C for realtime applications

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
Jupyter Notebook
11667 projects
Makefile
30231 projects

Projects that are alternatives of or similar to keras2c

signalo
A DSP toolbox with focus on embedded environments written in Rust.
Stars: ✭ 71 (+184%)
Mutual labels:  real-time, control-systems
BeatNet
This repository contains the implementation of the AI-based "BeatNet" Joint beat, downbeat, tempo, and meter tracking system using CRNN and particle filtering. 2021's state-of-the-art online model - (ISMIR 2021).
Stars: ✭ 56 (+124%)
Mutual labels:  real-time
object-flaw-detector-python
Detect various irregularities of a product as it moves along a conveyor belt.
Stars: ✭ 17 (-32%)
Mutual labels:  real-time
Faster-Grad-CAM
Faster and more precisely than Grad-CAM
Stars: ✭ 33 (+32%)
Mutual labels:  real-time
Real-Time-Abnormal-Events-Detection-and-Tracking-in-Surveillance-System
The main abnormal behaviors that this project can detect are: Violence, covering camera, Choking, lying down, Running, Motion in restricted areas. It provides much flexibility by allowing users to choose the abnormal behaviors they want to be detected and keeps track of every abnormal event to be reviewed. We used three methods to detect abnorma…
Stars: ✭ 35 (+40%)
Mutual labels:  real-time
lxgui
Portable, real time, modular and data-driven GUI C++ library.
Stars: ✭ 50 (+100%)
Mutual labels:  real-time
reactors
Maintain state, incorporate change, broadcast deltas. Reboot on error.
Stars: ✭ 17 (-32%)
Mutual labels:  real-time
MatrixEquations.jl
Solution of Lyapunov, Sylvester and Riccati matrix equations using Julia
Stars: ✭ 31 (+24%)
Mutual labels:  control-systems
robinhood.tools
📈🤑💰 Advanced trading tools and resources for Robinhood Web.
Stars: ✭ 27 (+8%)
Mutual labels:  real-time
motis
Intermodal Mobility Information System
Stars: ✭ 45 (+80%)
Mutual labels:  real-time
Restoring-Extremely-Dark-Images-In-Real-Time
The project is the official implementation of our CVPR 2021 paper, "Restoring Extremely Dark Images in Real Time"
Stars: ✭ 79 (+216%)
Mutual labels:  real-time
nn robustness analysis
Python tools for analyzing the robustness properties of neural networks (NNs) from MIT ACL
Stars: ✭ 36 (+44%)
Mutual labels:  control-systems
tiny-cuda-nn
Lightning fast & tiny C++/CUDA neural network framework
Stars: ✭ 908 (+3532%)
Mutual labels:  real-time
StreamingSpeakerDiarization
Official open source implementation of the paper "Overlap-aware low-latency online speaker diarization based on end-to-end local segmentation"
Stars: ✭ 79 (+216%)
Mutual labels:  real-time
dxfeed-python-api
dxFeed Python API based on dxFeed C API
Stars: ✭ 16 (-36%)
Mutual labels:  real-time
EL6483 EmbeddedSystems
All course materials, build systems, etc. for the graduate Real-Time Embedded Systems Course, Spring 2017
Stars: ✭ 14 (-44%)
Mutual labels:  control-systems
vbcg
real-time application for video-based methods in the context of MRI
Stars: ✭ 20 (-20%)
Mutual labels:  real-time
playhouse
A platform for real-time multiplayer trivia games 🎮
Stars: ✭ 20 (-20%)
Mutual labels:  real-time
phoenix-rtos-kernel
Phoenix-RTOS microkernel repository
Stars: ✭ 77 (+208%)
Mutual labels:  real-time
trading sim
📈📆 Backtest trading strategies concurrently using historical chart data from various financial exchanges.
Stars: ✭ 21 (-16%)
Mutual labels:  real-time

keras2c

Build Status Code Coverage

License: MIT Please Cite Keras2c!

keras2c is a library for deploying keras neural networks in C99, using only standard libraries. It is designed to be as simple as possible for real time applications.

Quickstart

After cloning the repo, install the necessary packages with pip install -r requirements.txt.

keras2c can be used from the command line:

python -m keras2c [-h] [-m] [-t] model_path function_name

A library for converting the forward pass (inference) part of a keras model to
    a C function

positional arguments:
  model_path         File path to saved keras .h5 model file
  function_name      What to name the resulting C function

optional arguments:
  -h, --help         show this help message and exit
  -m, --malloc       Use dynamic memory for large arrays. Weights will be
                     saved to .csv files that will be loaded at runtime
  -t , --num_tests   Number of tests to generate. Default is 10

It can also be used with a python environment in the following manner:

from keras2c import k2c
k2c(model, function_name, malloc=False, num_tests=10, verbose=True)

For more information, see Installation and Usage

Supported Layers

  • Core Layers: Dense, Activation, Dropout, Flatten, Input, Reshape, Permute, RepeatVector, ActivityRegularization, SpatialDropout1D, SpatialDropout2D, SpatialDropout3D
  • Convolution Layers: Conv1D, Conv2D, Conv3D, Cropping1D, Cropping2D, Cropping3D, UpSampling1D, UpSampling2D, UpSampling3D, ZeroPadding1D, ZeroPadding2D, ZeroPadding3D
  • Pooling Layers: MaxPooling1D, MaxPooling2D, AveragePooling1D, AveragePooling2D, GlobalMaxPooling1D, GlobalAveragePooling1D, GlobalMaxPooling2D, GlobalAveragePooling2D, GlobalMaxPooling3D,GlobalAveragePooling3D
  • Recurrent Layers: SimpleRNN, GRU, LSTM, SimpleRNNCell, GRUCell, LSTMCell
  • Embedding Layers: Embedding
  • Merge Layers: Add, Subtract, Multiply, Average, Maximum, Minimum, Concatenate, Dot
  • Advanced Activation Layers: LeakyReLU, PReLU, ELU, ThresholdedReLU, Softmax, ReLU
  • Normalization Layers: BatchNormalization
  • Noise Layers: GaussianNoise, GaussianDropout, AlphaDropout
  • Layer Wrappers: TimeDistributed, Bidirectional

ToDo

  • Core Layers: Lambda, Masking
  • Convolution Layers: SeparableConv1D, SeparableConv2D, DepthwiseConv2D, Conv2DTranspose, Conv3DTranspose
  • Pooling Layers: MaxPooling3D, AveragePooling3D
  • Locally Connected Layers: LocallyConnected1D, LocallyConnected2D
  • Recurrent Layers: ConvLSTM2D, ConvLSTM2DCell
  • Merge Layers: Broadcasting merge between different sizes
  • Misc: models made from submodels

Contribute

License

The project is licensed under the MIT license.

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].