Introduction

This topic has been covered extensively already. What is provided below is is not original or unique. However, it is with great pleasure that I publish something proving Python has nothing over R anyomore. In fact, R has significant features Python cannot touch.


It has always been a debatable topic to choose between R and Python. The Machine Learning world has been divided over the preference of one language over the other. But with the explosion of Deep Learning, the balance shifted towards Python as it had an enormous list of Deep Learning libraries and frameworks which R lacked - until now.

With launch of Keras in R, the R or Python fight heats up again.. Python was slowly becoming the de-facto language for Deep Learning models. But with the release of Keras library in R with tensorflow (CPU and GPU compatibility) at the backend as of now, it is likely that R will again fight Python for the podium even in the Deep Learning space.

What is Keras?

Keras is a high-level neural networks API developed with a focus on enabling fast experimentation. Keras has the following key features:

  • Provides the same code to run on CPU or on GPU, seamlessly.
  • User-friendly API which makes it easy to quickly prototype deep learning models.
  • Built-in support for convolutional networks (for computer vision) and recurrent networks (for sequence processing). These are capabilities that R used to lack - probably the only example where Python had an edge over R - but no more!
  • Keras supports essentially any deep learning model from a memory network to a neural Turing machine.
  • Keras runs on top of multiple back-ends including TensorFlow - the default, CNTK, and Theano.

See the Keras website for more detailed information.

Keras in Action

What is the most sited example of of vision deep learning used by just about every training course out there? MNIST of course.

MNIST is a collection of 60,000 images of 500 different people’s handwriting that is used for training CNNs. Another set of 10,000 test images (different from the training images) is used to test the accuracy of the resulting CNN.

An example of the types of images captured in MNIST is shown below.