Book Image

Caffe2 Quick Start Guide

By : Ashwin Nanjappa
Book Image

Caffe2 Quick Start Guide

By: Ashwin Nanjappa

Overview of this book

Caffe2 is a popular deep learning library used for fast and scalable training, and inference of deep learning models on different platforms. This book introduces you to the Caffe2 framework and demonstrates how you can leverage its power to build, train, and deploy efficient neural network models at scale. The Caffe 2 Quick Start Guide will help you in installing Caffe2, composing networks using its operators, training models, and deploying models to different architectures. The book will also guide you on how to import models from Caffe and other frameworks using the ONNX interchange format. You will then cover deep learning accelerators such as CPU and GPU and learn how to deploy Caffe2 models for inference on accelerators using inference engines. Finally, you'll understand how to deploy Caffe2 to a diverse set of hardware, using containers on the cloud and resource-constrained hardware such as Raspberry Pi. By the end of this book, you will not only be able to compose and train popular neural network models with Caffe2, but also deploy them on accelerators, to the cloud and on resource-constrained platforms such as mobile and embedded hardware.
Table of Contents (9 chapters)

Converting a Caffe model to Caffe2

To be able to use a Caffe model in Caffe2, we need to convert it from its Caffe formats to Caffe2 file formats. Caffe2 provides a script named python/caffe_translator.py that can be used for this purpose.

For example, we can convert our AlexNet files from Caffe to Caffe2 by invoking the script as follows:

$ python python/caffe_translator.py path_to_caffe/models/bvlc_alexnet/deploy.prototxt path_to_caffe/models/bvlc_alexnet/bvlc_alexnet.caffemodel --init_net init_net.pb --predict_net predict_net.pb

Running this script generates three files, predict_net.pb, predict_net.pbtxt, and init_net.pb, for AlexNet:

Figure 4.3: AlexNet network structure in Caffe2

Figure 4.3 shows the AlexNet network structure in Caffe2 after it was converted from the Caffe model. This graph visualization was generated using the Caffe2 net_drawer.py tool that utilizes GraphViz...