There have been so many announcements about Deep Learning, Deep Neural Networks (DNNs) and Artificial Intelligence (AI) over the last year that it would be completely excusable to be totally confused.
What is an API, and why should you care?
An Application Programming Interface, or API, provides the interface for one piece of software to talk to another chunk of code on the same processor. The underlying code, or subroutines, can simplify a programmer’s life by providing reusable code, so they can focus on the higher level programming that connects these subroutines into useful applications and provides an interface for the user. In the fast moving world of Deep Neural Networks, where brain-inspired algorithms can be trained and then used for such tasks as recognizing images, translating speech, or processing video and sensor input to pilot a vehicle, recent APIs have focused on simplifying the job of creating these data-rich models by defining a rich framework with libraries optimized to specific architectures such as GPUs and CPUs. These APIs have come from universities such as UC Berkeley (Caffe) and the University of Montreal (Theano) as well as from internet giants such as
HPE Haven is for Deep Learning cloud applications
Last year,
Apple’s APIs are for building smart apps on iPhones and iPads
But what if you have designed a neural network with one of the popular open-source frameworks to distinguish, say, breeds of dogs. Then you train it using
Where do we go from here?
What we are seeing is the rapid maturation of the development tool chain (APIs) for Deep Neural Networks, which will help accelerate the creation of new neural networks and the applications that use them.
- Low-level frameworks are used to build and train the networks (e.g., Google TensorFlow). This is a double black diamond slope: experts only.
- APIs like Apple BNNS will make it easy to build and use a trained neural network on a specific processor to infer answers from a set of inputs. This will be typically on mobile devices for now, using the device's camera and microphone for input but could evolve to include embedded DNNs such as robotics and IOT edge devices.
- High-level cloud services provide access to a set of trained networks for common applications (HPE Haven). These are very useful for your average Python developer who has data such as images, text or speech and who does not require a custom neural network.
Taken together, these three approaches will help accelerate application development and foster the pervasive use of neural networks that will take our applications to the next level.
Disclosure: Moor Insights & Strategy, like all research and analyst firms, provides or has provided research, analysis, advising and/or consulting to many high-tech companies in the industry, including some of those mentioned in this article including Hewlett Packard Enterprise and NVIDIA. I own Google and AAPL in my retirement account, but otherwise do not have any investment positions in the other companies named in this article.