# AI Frameworks ::: {.callout-note collapse="true"} ## Learning Objectives * coming soon. ::: ## Introduction Explanation: Discuss what ML frameworks are and why they are important. Also, elaborate on the aspects involved in understanding how an ML framework is developed and deployed. - Definition of ML Frameworks - What is an ML framework? - Why are ML frameworks important? - Go over the design and implementation - Examples of ML frameworks - Challenges of embedded systems ## Evolution of AI Frameworks - High-level vs. low-level frameworks - Static vs. dynamic computation graph frameworks - Plot showing number of different frameworks and shrinking ## Types of AI Frameworks - Cloud-based AI frameworks - Edge AI frameworks - TinyML frameworks ## Popular AI Frameworks Explanation: Discuss the most common types of ML frameworks available and provide a high-level overview, so that we can set into motion what makes embedded ML frameworks unique. - TensorFlow, PyTorch, Keras, ONNX Runtime, Scikit-learn - Key Features and Advantages - API and Programming Paradigms - Table comparing the different frameworks ## Basic Components - Computational graphs - Tensor data structures - Distributed training - Model optimizations - Code generation - Differentiable programming - Hardware acceleration support (GPUs, TPUs) ## Advanced Features - AutoML, No-Code/Low-Code ML - Transfer learning - Federated learning - Model conversion - Distributed training - End-to-End ML Platforms ## Embedded AI Constraints Explanation: Describe the constraints of embedded systems, referring to the previous chapters, and remind readers about the challenges and why we need to consider creating lean and efficient solutions. ### Hardware - Memory Usage - Processing Power - Energy Efficiency - Storage Limitations - Hardware Diversity ### Software - Library Dependency - Lack of OS ## Embedded AI Frameworks Explanation: Now, discuss specifically about the unique embedded AI frameworks that are available and why they are special, etc. - TensorFlow Lite - ONNX Runtime - MicroPython - CMSIS-NN - Edge Impulse - Others (briefly mention some less common but significant frameworks) ## Choosing the Right Framework - Factors to consider: ease of use, community support, performance, scalability, etc. - Integration with data engineering tools - Integration with model optimization tools ## Framework Comparison Explanation: Provide a high-level comparison of the different frameworks based on class slides, etc. - Table of differences and similarities ## Trends in ML Frameworks Explanation: Discuss where these ML frameworks are heading in the future. Perhaps consider discussing ML for ML frameworks? - Framework Developments on the Horizon - Anticipated Innovations in the Field ## Challenges and Limitations Explanation: None of the frameworks are perfect, so it is important to understand their limitations and challenges. - Model compatibility and interoperability issues - Scalability and performance challenges - Addressing the evolving needs of AI developers ## Conclusion - Summary of Key Takeaways - Recommendations for Further Learning