release commit
[jacinto-ai/pytorch-jacinto-ai-devkit.git] / README.md
1 # Jacinto-AI-DevKit (PyTorch)
3 ###### Notice: 
4 - 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)
5 - **Issue Tracker:** 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).<br>
6 -- While creating a new issue, the part number should be filled in as **TDA4VM**. Also, kindly include **jacinto-ai-devkit** in the tags (at the end of the page as you create a new issue). 
7 - If you do not get a reply within two days, please contact us at: jacinto-ai-devkit@list.ti.com
9 ### Deep Learning Models / Training / Calibration & Quantization - Using PyTorch<br>
10 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. 
12 This code also includes tools for **Post Training Calibration and Trained Quantization (a.k.a 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).
14 Our expectation is that these Deep Learning examples, models and tools will find application in a variety of problems, and the users will be able to build upon the **building blocks** that we have provided. 
16 **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).** This code is primarily intended for learning and research. 
18 ## Installation Instructions
19 - These instructions are for installation on **Ubuntu 18.04**. 
20 - Install Anaconda with Python 3.7 or higher from https://www.anaconda.com/distribution/ <br>
21 - After installation, make sure that your python is indeed Anaconda Python 3.7 or higher by typing:<br>
22     ```
23     python --version
24     ```
25 - Clone this repository into your local folder
26 - Execute the following shell script to install the dependencies:<br>
27     ```
28     ./setup.sh
29     ```
31 ## Examples
32 The following examples are currently available. Click on each of the links below to go into the full description of the example. 
33 * Image Classification<br>
34     * [**Image Classification**](docs/Image_Classification.md)<br>
35 * Pixel2Pixel prediction<br>
36     * [**Semantic Segmentation**](docs/Semantic_Segmentation.md)<br>
37     * [Depth Estimation](docs/Depth_Estimation.md)<br>
38     * [Motion Segmentation](docs/Motion_Segmentation.md)<br>
39     * Multi Task Estimation - coming soon..<br>
40 * Object Detection<br>
41     * Object Detection - coming soon..<br>
42     * Object Keypoint Estimation - coming soon..<br>
43 * Quantization<br>
44     * [**Quantization Aware Training**](docs/Quantization.md)<br>
46 Some of the common training and validation commands are provided in shell scripts (.sh files) in the root folder.
48 ## Additional Information
49 For information on other similar devkits, please visit:<br> 
50 - [https://github.com/TexasInstruments/jacinto-ai-devkit](https://github.com/TexasInstruments/jacinto-ai-devkit)<br> AND
51 - [https://git.ti.com/jacinto-ai-devkit](https://git.ti.com/jacinto-ai-devkit)<br>
53 ## Acknowledgements
55 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.
57 |Module/Functionality              |Parts of the code borrowed/modified from                                             |
58 |----------------------------------|-------------------------------------------------------------------------------------|
59 |Datasets, Models                  |https://github.com/pytorch/vision, https://github.com/ansleliu/LightNet              |
60 |Training, Validation Engine/Loops |https://github.com/pytorch/examples, https://github.com/ClementPinard/FlowNetPytorch |
61 |Object Detection                  |https://github.com/open-mmlab/mmdetection                                            |
63 ## License
65 Please see the [LICENSE](./LICENSE) file for more information about the license under which this code is made available.