Skip to content

A Python library to be used with Keras in order to train hardware-implementable neural networks.

License

Notifications You must be signed in to change notification settings

fireyoshiqc/keragen

Repository files navigation

KeraGen

A Python library to be used with Keras in order to train hardware-implementable neural networks.

Current features

  • S-Expression parser that converts .nn files to a tree-like data structure.
  • Support for hardware-compatible FC (fully-connected) layers.
  • Support for hardware-compatible Conv2D and MaxPooling layers.
  • Support for the MNIST dataset, provided by Keras.
  • Support for sigmoid and ReLU hardware-compatible activation functions.
  • Support for software (Keras) dropout and softmax layers.
  • Parametrizable training parameters such as batch size and number of epochs.
  • Complete Keras-enabled python file creation and saving.
  • Dynamic execution of native Keras training routine from the keragen.py script.
  • Saving of weights and biases in .nn files once the model is trained.
  • Dynamic .nn file fixed-point precision handling (from saved weights and biases).

Planned features

  • Allow for more training parameters to be modified (optimizer, regularizers, etc.)
  • Support for custom datasets.
  • Handling more than one neural network per .nn file.
  • Dynamic .nn file import handling (add saved weights and biases as imports).
  • Implement as a real library, eventually a Python wheel.

About

A Python library to be used with Keras in order to train hardware-implementable neural networks.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published