Comparing Deep Learning Framework Programmes
Deep Learning frameworks are systems for the training and deployment of Deep Learning networks which provide the flexibility to design and adapt the network to your specific task, frameworks for Deep Learning allow you to hit the ground running, to prototype and test ideas and applications without the considerable overhead of writing significant amounts of your own code. All the major frameworks use cuDNN so you can rely on optimised code, and each one has a community of developers and users who can help you not only get the most from the framework you chose but also guide you in modifying the framework to provide new features you may require for your application.
There are many freely available frameworks optimised for Deep Learning, each with different biases and their own unique styles of programming, the most widely used include Caffe, DIGITS, TensorFlow and Torch.
Berkley Vision and Learning Centre
Caffe provides an easy and accessible way to define and train deep neural networks via a high-level scripting language describing the network. Extending your application beyond the pre-defined Caffe modules is fairly straight forward but will require programming your own Caffe modules. Caffe is a powerful command line driven framework.
DIGITS isn’t really a framework in its own right but rather provides a powerful graphical front end to both Caffe and Torch, simplifying interaction, setup, and providing useful visualisations of what’s going on in your deep neural network. DIGITS also helps optimise the use of multiple NVIDIA GPUs.
In contrast to Caffe’s high-level script, Torch throws you in at a deeper level requiring you to program your Deep Learning model while providing a powerful and useful level of description. This can make Torch appear more flexible than Caffe as it is clearer how the entire learning process operates, as you have had to define each step. Torch is also a command line and programming driven framework.
TensorFlow is the newest addition to this group, and as such is currently the least developed but this is changing fast. TensorFlow aims to provide a more professional tool for developing and managing Deep Learning, it also provides its own graphical interface simplifying interaction, setup, and providing useful visualisations of what’s going on in your deep neural network.
It’s worth noting that many more Deep Learning frameworks exist, such as Kaldi - which is focused on Speech recognition, the IBM Deep Learning Platform - an entire platform from operating system to frameworks including Spark and SystemML, Theano - which includes other machine learning methods too, and many more.