# Jacinto-AI-DevKit (PyTorch) ###### Notice: - If you have not visited our landing page in github, please do so: [https://github.com/TexasInstruments/jacinto-ai-devkit](https://github.com/TexasInstruments/jacinto-ai-devkit) - **Issue Tracker for jacinto-ai-devkit:** You can file issues or ask questions at **e2e**: [https://e2e.ti.com/support/processors/f/791/tags/jacinto_2D00_ai_2D00_devkit](https://e2e.ti.com/support/processors/f/791/tags/jacinto_2D00_ai_2D00_devkit). While creating a new issue kindly include **jacinto-ai-devkit** in the tags (as you create a new issue, there is a space to enter tags, at the bottom of the page). - **Issue Tracker for TIDL:** [https://e2e.ti.com/support/processors/f/791/tags/TIDL](https://e2e.ti.com/support/processors/f/791/tags/TIDL). Please include the tag **TIDL** (as you create a new issue, there is a space to enter tags, at the bottom of the page). - If you do not get a reply within two days, please contact us at: jacinto-ai-devkit@list.ti.com ### Deep Learning Models / Training / Calibration & Quantization - Using PyTorch
This code provides a set of low complexity deep learning examples and models for low power embedded systems. Low power embedded systems often requires balancing of complexity and accuracy. This is a tough task and requires significant amount of expertise and experimentation. We call this process **complexity optimization**. In addition we would like to bridge the gap between Deep Learning training frameworks and real-time embedded inference by providing ready to use examples and enable **ease of use**. Scripts for training, validation, complexity analysis are also provided. This code also includes tools for **Quantization Aware Training** that can output an 8-bit Quantization friendly model - these tools can be used to improve the quantized accuracy and bring it near floating point accuracy. For more details, please refer to the section on [Quantization](docs/Quantization.md). **Several of these models have been verified to work on [TI's Jacinto7 Automotive Processors](http://www.ti.com/processors/automotive-processors/tdax-adas-socs/overview.html).** These tools and software are primarily intended as examples for learning and research. ## Installation Instructions - These instructions are for installation on **Ubuntu 18.04**. - Install Anaconda with Python 3.7 or higher from https://www.anaconda.com/distribution/
- After installation, make sure that your python is indeed Anaconda Python 3.7 or higher by typing:
``` python --version ``` - Clone this repository into your local folder - Execute the following shell script to install the dependencies:
``` ./setup.sh ``` ## Examples - [**Image Classification**](docs/Image_Classification.md)
- [**Semantic Segmentation**](docs/Semantic_Segmentation.md)
- [Depth Estimation](docs/Depth_Estimation.md)
- [Motion Segmentation](docs/Motion_Segmentation.md)
- [**Multi Task Estimation**](docs/Multi_Task_Learning.md)
- Object Detection - coming soon..
- Object Keypoint Estimation - coming soon..
- [**Quantization Aware Training**](docs/Quantization.md)
Above are some of the examples are currently available. Click on each of the links above to go into the full description of the example. ## Additional Information - Some of the common training and validation commands are provided in shell scripts (.sh files) in the root folder.
- Landing Page: [https://github.com/TexasInstruments/jacinto-ai-devkit](https://github.com/TexasInstruments/jacinto-ai-devkit)
- Actual Git Repositories: [https://git.ti.com/jacinto-ai-devkit](https://git.ti.com/jacinto-ai-devkit)
## Acknowledgements Our source code uses parts of the following open source projects. We would like to sincerely thank their authors for making their code bases publicly available. |Module/Functionality |Parts of the code borrowed/modified from | |----------------------------------|-------------------------------------------------------------------------------------| |Datasets, Models |https://github.com/pytorch/vision, https://github.com/ansleliu/LightNet | |Training, Validation Engine/Loops |https://github.com/pytorch/examples, https://github.com/ClementPinard/FlowNetPytorch | |Object Detection |https://github.com/open-mmlab/mmdetection | ## License Please see the [LICENSE](./LICENSE) file for more information about the license under which this code is made available.