Skip to content

aimilefth/Vitis-AI-Tutorials

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Vitis-AI™ 1.4 - Machine Learning Tutorials

See Vitis™ Development Environment on xilinx.com
See Vitis-AI™ Development Environment on xilinx.com

Introduction to Machine Learning with Vitis AI

Start here! This tutorial series will help to get you the lay of the land working with the Vitis AI toolchain and machine learning on Xilinx devices.

Tutorial Description
Introduction to Vitis AI This tutorial puts in practice the concepts of FPGA acceleration of Machine Learning and illustrates how to quickly get started deploying both pre-optimized and customized ML models on Xilinx devices.

Design Tutorials

These tutorials illustrate end-to-end design concepts or workflows using Vitis AI.

Tutorial Description
Quantization and Pruning of AlexNet CNN trained in Caffe with Cats-vs-Dogs dataset Train, prune, and quantize a modified version of the AlexNet convolutional neural network (CNN) with the Kaggle Dogs vs. Cats dataset in order to deploy it on the Xilinx® ZCU102 board.
MNIST Classification using Vitis AI and TensorFlow Learn the Vitis AI TensorFlow design process for creating a compiled ELF file that is ready for deployment on the Xilinx DPU accelerator from a simple network model built using Python. This tutorial uses the MNIST test dataset.
Using DenseNetX on the Xilinx DPU Accelerator Learn about the Vitis AI TensorFlow design process and how to go from a Python description of the network model to running a compiled model on the Xilinx DPU accelerator.
Deep Learning with Custom GoogleNet and ResNet in Keras and Xilinx Vitis AI Quantize in fixed point some custom CNNs and deploy them on the Xilinx ZCU102 board, using Keras and the Xilinx7Vitis AI tool chain based on TensorFlow (TF).
FCN8 and UNET Semantic Segmentation with Keras and Xilinx Vitis AI Train the FCN8 and UNET Convolutional Neural Networks (CNNs) for Semantic Segmentation in Keras adopting a small custom dataset, quantize the floating point weights files to an 8-bit fixed point representation, and then deploy them on the Xilinx ZCU102 board using Vitis AI.
Vitis AI YOLOv4 Learn how to train, evaluate, convert, quantize, compile, and deploy YOLOv4 on Xilinx devices using Vitis AI.
TensorFlow2 and Vitis AI design flow Learn about the TF2 flow for Vitis AI. In this tutorial, you'll be trained on TF2, including conversion of a dataset into TFRecords, optimization with a plug-in, and compiling and execution on a Xilinx ZCU102 board or Xilinx Alveo U50 Data Center Accelerator card.
PyTorch flow for Vitis AI Introduces the Vitis AI TensorFlow design process and illustrates how to go from a python description of the network model to running a compiled model on a Xilinx evaluation board.
RF Modulation Recognition with TensorFlow 2 Machine learning applications are certainly not limited to image processing! Learn how to apply machine learning with Vitis AI to the recognition of RF modulation from signal data.
Denoising Variational Autoencoder with TensorFlow2 and Vitis-AI The Xilinx DPU can accelerate the execution of many different types of operations and layers that are commonly found in convolutional neural networks but occasionally we need to execute models that have fully custom layers. One such layer is the sampling function of a convolutional variational autoencoder. The DPU can accelerate the convolutional encoder and decoder but not the statistical sampling layer - this must be executed in software on a CPU. This tutorial will use the variational autoencoder as an example of how to approach this situation.
Alveo U250 TF2 Classification Demonstrates image classification using the Alveo U250 card with Vitis AI 1.4 and the Tensorflow 2.x framework.
Pre- and Post-processing PL Accelerators for ML with Versal DPU A complete example of how using the WAA flow with Vitis 2020.2 targeting the VCK190 PP board.
Caffe SSD Describes the Single Shot Detector (SSD), which is trained with Caffe on the PASCAL VOC dataset. This dataset contains 21 classes, one of which is background.
ML Caffe Segmentation Describes how to train, quantize, compile, and deploy various segmentation networks using Vitis AI, including ENet, ESPNet, FPN, UNet, and a reduced compute version of UNet that we'll call Unet-lite. The training dataset used for this tutorial is the Cityscapes dataset, and the Caffe framework is used for training the models.
Introduction Tutorial to the Vitis AI Profiler Introduces the the Vitis AI Profiler tool flow and will illustrates how to profile an example from the Vitis AI runtime (VART).
PyTorch CityScapes Pruning Provides a starting point and demonstration of the PyTorch pruning capabilities for segmentation models.
Pre- and Post-processing Accelerators for Semantic Segmentation with Unet CNN on MPSoC DPU A complete example of how using the WAA flow targeting the MPSoC ZCU102 board.

Feature Tutorials

Feature tutorials illustrate specific workflows or stages within Vitis AI.

Tutorial Description
Partitioning Vitis AI SubGraphs on CPU/DPU Learn how to deploy a CNN on the Xilinx VCK190 board using Vitis AI.
Fine-Tuning TensorFlow2 quantized model Learn how to implement the Vitis-AI quantization fine-tuning for TensorFlow2.3.
Vitis AI based Deployment Flow on VCK190 DPU integration with VCK190 production platform.
TensorFlow AI Optimizer Example Using Low-level Coding Style Use AI Optimizer for TensorFlow to prune an AlexNet CNN by 80% while maintaining the original accuracy.
TensorFlow1 AI Optimizer example using Keras Use Xilinx's AI Optimizer for TensorFlow1 to prune a MobileNetV2 CNN by 50% whilst maintaining the original floating-point accuracy.

Copyright© 2020-2021 Xilinx

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 39.6%
  • C++ 30.3%
  • Shell 18.3%
  • C 5.3%
  • Makefile 2.6%
  • Jupyter Notebook 2.0%
  • Other 1.9%