Tensorflow provides many primitives for defining these graphs and if you’ve run through the introductory tutorials you’ve undoubtedly encountered them when constructing simple neural net architectures. Defining an architecture for a learning task is tantamount to defining this graph. Operations in our neural network (e.g., convolution, bias adding, dropout, etc.) are all modeled as nodes and edges in this graph. Check it out here.Īt the core of Tensorflow is the notion of a computational graph.
I’ve also created a Github repository with code samples that we’ll use in the series. Signup is fast and easy and gives you access to a desktop computing environment through your browser. Paperspace : For those that don’t want to futz with building their own box or the hassle of running a server, Paperspace offers a GPU-enabled linux desktop box in the cloud that is purpose-built for machine learning.Use a pre-built AMI: Amazon has a pre-built AMI with a variety of pre-packaged frameworks (MXNet, Caffe, Tensorflow, Theano, Torch and CNTK).
For that, you’ll need to build Tensorflow with Nvidia’s drivers. Build your own: I’ve done most of my training on Amazon using a p2.xlarge GPU instance that I built from scratch.Training deep learning models like Inception is so computationally intensive that running it on your laptop is impractical. This works well for smaller projects and experimentation. One of the easiest ways I’ve found is to use Docker and just grab the latest image. Obviously, you’ll need a workstation with Tensorflow installed. How do I apply Inception to my dataset? How do I use Tensorboard to monitor the training? Part 3: Training Inception on a Novel Dataset.How is Inception put together? What is its rough architecture? Slim is a library that can help you tame the complexity. Part 1: Using Slim to Build Deep Architecturesĭeep architectures are complicated beasts.The tutorial is roughly divided into 4 parts:
Think graduate student embarking on a project, or a software engineer who’s been asked to build a training and inference pipeline. Instead, this tutorial is aimed at folks who have done the basic Tensorflow tutorials and want to “go a little deeper” to apply Inception to their own projects. This is a practical introduction, so it’s not focused on the theories that underly neural networks, computer vision, or deep learning models (though there will be a few remarks about the general motivation behind Inception in Part 2). While the goal isn’t to get to world-class performance, we’ll get a model that performs at >99% accuracy. Inspired by Inception’s own origins, this tutorial will “go deeper,” presenting a soup-to-nuts tutorial using Inception to train a MNIST (hand-written digits) classifier.
I wrote this series because I couldn’t easily bridge the gap between Tensorflow’s tutorials and doing something practical with Inception. It’s also designed to be computationally efficient, using 12x fewer parameters than other competitors, allowing Inception to be used on less-powerful systems. The Inception model is particularly exciting because it’s been battle-tested, delivering world-class results in the widely-acknowledged ImageNet Large Scale Visual Recognition Challenge (ILSVRC). When Google released its Tensorflow framework and Inception architecture, I decided to do a deep dive into both technologies in my spare time.
I’ve nursed a side interest in machine learning and computer vision since my time in graduate school.