Skip to main content

keras2c

Upload Python Package Supported Python Versions Code Coverage

License: LGPLv3 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.

Please cite this paper if you use this work in your research:

R. Conlin, K. Erickson, J. Abbate, and E. Kolemen, “Keras2c: A library for converting Keras neural networks to real-time compatible C,”
Engineering Applications of Artificial Intelligence, vol. 100, p. 104182, Apr. 2021, doi: 10.1016/j.engappai.2021.104182.

Installation

Recommended Installation

The modern way to install keras2c is via pip:

pip install keras2c

To use the original/stable version, use the Release v1.0.2 (https://github.com/PlasmaControl/keras2c/releases/tag/v1.0.2) with the command:

git clone git@github.com:PlasmaControl/keras2c.git --branch v1.0.2

For Windows, make sure that you have gcc installed. We recommend CYGWIN with make and gcc.

Quickstart

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 within a python environment:

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, 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 LGPLv3 license.

Metadata

Release files for keras2c 2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for keras2c 2.0
File Size Uploaded
keras2c-2.0.tar.gz 33.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for keras2c 2.0
File Interpreter ABI Platform
keras2c-2.0-py3-none-any.whl Python 3 none any Details

Total release size: 60.5 kB

Release files / keras2c-2.0.tar.gz

Download URL keras2c-2.0.tar.gz
Size 33.4 kB
Tags Source
SHA-256 checksum
How to use checksums
a82fefe7d11fdca7c12b6ad8fdb950a329128b5cad4a618ff67c2de2262ebf45
BLAKE2b-256 checksum
How to use checksums
e4332576f6646da020b4b1a6d05a5101ce37e01d4dc8f48e5ed83b5976660ff7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 27, 2025.

Transparency log

Release files / keras2c-2.0-py3-none-any.whl

Download URL keras2c-2.0-py3-none-any.whl
Size 27.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5b8e47f0a46ba1b683df35895649c7d18297e9dedfd919c9f6f6ac94494214e7
BLAKE2b-256 checksum
How to use checksums
2972f2b76c7118dbac42f2ba429a6a4db9f8ba01b0ce3ecd7375b7fb0ec08412
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 27, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

2.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page