https://waveworks.dk/flow-coder/ Skip to content [cropped-waveworks_logo_6] * Home * Flow CSV Editor * Flow Coder * Contact [cropped-waveworks_logo_6] Navigation Menu Navigation Menu * Home * Flow CSV Editor * Flow Coder * Contact Technology preview now open April 5, 2023: The first technology preview of Flow Coder's ML to source code compiler is now open for model submissions. Click the button below and submit your ML model through the form. Within 48 hours, you will receive a dependency-free source code file with a function that executes the model inference, or an email with an estimation for when you can expect to receive it. * The preview is available for the first 25 submissions. * You will receive a response within 48 hours, either with the source code, or with an estimation for when you can expect to receive it, in case the compiler currently doesn't support your model. * The compiler currently supports Keras .h5 files, but we encourage you to also submit .onnx model files, which will be supported shortly. * The compiler currently generates C/C++, Java, Kotlin and Swift, however you can also request conversion to C#, Python and JavaScript, which will be supported shortly. * We will not share your model with anyone. However, both the model and the produced source code will be downloadable with a public web link. These links will not be shared with anyone but you. All models and source code will be deleted from the server no later than April 28, 2023. * By submitting your email address, you agree to receive an email when your model has been converted, when Flow Coder is ready for beta testing, and when Flow Coder is publicly released. When you receive the source code, you will be encouraged to submit your feedback, so we can improve the compiler for you. SUBMIT YOUR MODEL Read on to learn more about the full product, expected to be launched later this year. [waves-scaled] Flow Coder [FlowCoder-1] Flow Coder takes the pain out of integrating a machine learning model into your software or firmware project. It converts trained machine learning models straight into dependency-free source code for many common programming languages, thereby eliminating the complexity and overhead of inference libraries in deployment projects. The compiler can be invoked online, using a desktop tool or as a single executable command-line tool, so it's easy to integrate as a pre-build step in a build pipeline. The full product is expected to be available late 2023 or early 2024. Benefits * Simplicity. Flow Coder can produce one single stand-alone function that consumes an input vector and produces an output vector. That's it. No need for inference runtimes, libraries or other dependencies that complicate the build process. * Efficiency. Inference with Flow Coder is expected to run faster and use less memory and power than with existing commonly used inference libraries for small models; partly because of the eliminated overhead, partly because all tensor operations are expanded to scalars and then further optimized. This is particularly true for heavily pruned and sparse models, where a latency reduction of 85-90% can be expected. * Flexibility. Although scalar math code is the ultimate target for Flow Coder, it can also produce code targeting higher level inference libraries such as CMSIS-NN. * Extensibility. Flow Coder uses the Python dialect FL to define the entire decomposition from high-level Keras model down to scalar math. This allows an expert user to easily define new layers or target new inference libraries. Moreover, users can add FL/Python code defining preprocessing and postprocessing to be included in the code generation. * Readability. The produced code is fully human readable and gives the user immediate and complete insight in how every layer and every operation is computed. Input formats Initially, the compiler will support the following model formats: * Keras .h5 * .tflite * ONNX The compiler supports all layers and operations including quantized models. Target languages The following languages can be generated: * C/C++ * Java * Kotlin * Swift * JavaScript * C# * Python * CUDA * VHDL