User Guide ========== šŸš§ Please be aware that this user guide is still an incomplete and only partially implemented specification of the Aidge framework. Please refer to the :ref:`API section ` to get the current state of Aidge's API. Workflow overview ----------------- AIDGE allows designing and deploying Deep Neural Networks (DNN) on embedded systems. The design and deployment stages are as follows: .. image:: /source/_static/AidgeWorkflow.PNG High level functionalities -------------------------- AIDGE offers functionalities that can be categorized according to the following diagram. - :ref:`Load and store model ` functions used to load or store a graph model from/to a serialized format. - :ref:`Model graph `: functions used to model a graph such as adding an operator. - :ref:`Transform model `: functions used for manipulating the graph, such as graph duplication. - :ref:`Provide data`: functions used for providing data in order to execute a graph on data. These functions must be runnable on device. - :ref:`Generate graph `: generate kernels and scheduling for a specific target, on an already optimized graph. There is no graph manipulation here, the graph is supposed to be already prepared (quantization, tiling, operator mappingā€¦) for the intended target. For graph preparation and optimization, see :ref:`Optimize graph`. - :ref:`Static analysis of the graph `: functions for obtaining statics on the graph like number of parameters, operations etc, that can be computed without having to execute the graph. - :ref:`Execute graph `: execute a graph, either using a backend library (simple implementation change, no generation or compilation involved), or compiled :ref:`operators ` implementation, after passing through the Compile graph function in this case. - :ref:`Learn model `: performing a training requires several functions of the workflow (Model graph, Provide data, Execute graph, Benchmark KPI). - :ref:`Benchmark KPI`: all kind of benchmarking requiring to run the network on a target in order to perform a measurement: accuracy, execution timeā€¦ Some of these functions must be runable on device. - :ref:`Model Hardware`: functions to represent the hardware target. - :ref:`Optimize graph`: high-level functions to optimize the hardware mapping: quantization, pruning, tilingā€¦ - :ref:`Learn on edge`: high-level functions to condition the graph for edge learning, including continual learning and federated learning. - :ref:`Ensure robustness`: high-level functions to condition the graph for robustness. .. toctree:: :hidden: :maxdepth: 2 architecture.rst data.rst modelGraph.rst loadStoreModel.rst interoperability.rst transformGraph.rst staticAnalysis.rst executeGraph.rst learnModel.rst benchmark.rst ensureRobustness.rst optimizeGraph.rst export.rst learnEdge.rst