The recent release of ROCm 1.6, which includes a cuDNN-like library called MIOpen and a port of the deep learning Caffe framework (the AMD version is called hipCaffe), has opened up the opportunity for running deep learning projects using AMD Radeon GPUs. In this article we demonstrate 6 projects that you can start using with AMDs new hardware accelerators.
Most GPU-enabled deep learning frameworks rely on Nvidia’s CUDA and cuDNN libraries. AMD is however pulling an aggressive effort to port many deep learning frameworks such as Caffe, Torch, MXNet and Tensorflow to run on their hardware. Developers are now able to convert CUDA code to portable C++ code, thanks to AMD’s porting tools and libraries such as HIP.
The deep learning framework Caffe has recently been ported using HIP, allowing Deep Learning practitioners to run Caffe projects on AMD GPUs. This port, can be downloaded from https://github.com/ROCmSoftwarePlatform/hipCaffe.
1. Traffic Sign Recognition
An interesting image classification problem is the recognition of traffic signs. This project (https://github.com/magnusja/GTSRB-caffe-model) classifies 43 different German traffic signs. A data set of 50,000 images is used.
2. Image Synthesizer
University of Wyoming’s Evolving AI Lab has a project whose goal is to understand how deep neural networks (DNNs) work by synthesizing preferred stimuli that highly activates the neurons for a particular image. A deep generator network (DGN) is used as prior to the DNN being studied. This DGN outputs a synthetic image very similar to real images from the ImageNet dataset as possible.
Below are a few results from running the sample scripts in the project:
The project’s paper is available from http://www.evolvingai.org/files/nguyen2016synthesizing.pdf. The code needed to reproduce some of the results in the paper is on GitHub: https://github.com/Evolving-AI-Lab/synthesizing.
3. Traffic Light Detection
David Brailovsky from Israel writes in Medium about Recognizing Traffic Lights with Deep Learning (see: https://medium.freecodecamp.org/recognizing-traffic-lights-with-deep-learning-23dae23287cc ). Source code for his project can be found here: https://github.com/davidbrai/deep-learning-traffic-lights
4. Cat/Dog Classifier
This introductory tutorial by Adil Moujahid shows how to train a model and how to use a pre-existing model to distinguish cats from dogs in pictures. A Kaggle dataset is used for this tutorial. For the trained model, the BVLC CaffeNet Model is used.
The Caffe project already has pre-trained models (i.e. VGG, ImageNet) that can be used as a starting point for developing other kinds of image classification.
5. Visual Development Environment
Fabrik is an open source application for building, visualizing and training deep learning models. Fabrik provides simple drag-and-drop tools to streamline deep learning development. The application currently supports importing, editing and exporting of Caffe based models. This is a convenient way to view and edit your models.
6. Model Conversion Tools
Finally, there are vastly more projects that have been developed in frameworks other than Caffe. For these projects, there are some tools that can convert models into one that is compatible with Caffe. This GitHub project https://github.com/ysh329/deep-learning-model-convertor provides a listing of conversion tools to convert one frameworks model into another.
MXNet to Caffe
PyTorch to Caffe
Torch to Caffe
Facebook has a converter (see: https://github.com/facebook/fb-caffe-exts ) that converts Torch models to Caffe.
In this article, we explore the many deep learning projects that you can now run using AMD Radeon Instinct hardware. We have included in this list, projects that you can test out with minimal effort. There are other projects that have customized Caffe with custom elements like new kinds of layers and activation function. For these projects, one may require porting CUDA specific code using AMD’s HIP tooling. Aside from the projects explored here, you can find other projects in the Caffe Model Zoo (see: https://github.com/BVLC/caffe/wiki/Model-Zoo).
The smartest companies in the world are migrating their infrastructure to support this new paradigm. Daily, the press continues to report the amazing progress of AI. Furthermore, you hear about firms like Google and Microsoft changing their entire software DNA to move into AI. The reason for this massive migration is Deep Learning.
Deep Learning is supporting work by not only providing assistive capabilities, but also by enabling more creative generative capabilities. Assistive capabilities can happen in real time as well as in the backend. There are certain professions where the ability to curate and analyze information is extremely valuable. We can enhance these curation and analysis capabilities by reducing the deluge of information into smaller chunks that are more quickly digestible.
Generative capabilities are a new kind of capability that is becoming more pervasive. By now, we’ve all experienced the capabilities of mobile app Prisma that is able to re-render photographs into the style of different artists.
In this article, we highlighted several deep learning projects that explore both assistive and generative capabilities found in Deep Learning. We also covered some tools that allow you to port models from other projects as well as an IDE. Software that supports Radeon Instinct accelerators is still in its infancy. However, despite being out for just a few months, there are now plenty of interesting applications that can be used as a springboard to developing more complex solutions.