Anthill Inside 2017

On theory and concepts in Machine Learning, Deep Learning and Artificial Intelligence. Formerly Deep Learning Conf.


Understanding Neural Networks with Theano

Submitted by Jaidev Deshpande (@jaidevd) on Monday, 10 April 2017

Section: Workshop Technical level: Intermediate


Theano is not only a powerful tool to build and run deep and shallow neural networks, it is also a wonderful learning resource. Since it works primarily on symbolic mathematical expressions, it can help us understand how learning in neural networks can be interpreted in terms of equations, vectors, variables and Python functions.

In this tutorial, participants will get a (very) brief background on the mathematics of neural networks and how to use theano to convert this knowledge into a Python program that can train and use a neural network.

Broadly the topics covered will be as follows:

  1. Constructing simple neural networks in Python
  2. Vectorizing neural networks in NumPy
  3. Simplifying the neural network construction with Theano
  4. Extending simple neural networks into deep networks


The workshop will proceed with four different Jupyter notebooks, each of them highlighting and providing exercises on different aspects of neural networks. The details can be found here:


  1. Intermediate knowledge of Python - classes, functions, control statements
  2. Basic knowledge of the numpy.ndarray object
  3. Basic differential calculus

Speaker bio

I am a data scientist based in New Delhi. I currently work at Juxt SmartMandate Analytic Solutions as Practice Lead in data science. I have been an active member of the Delhi, Pune and Mumbai Python users’ groups and am also an organizer of the SciPy India conference.

My background is in statistical signal processing and applications of machine learning in signal processing. I am currently working on various projects involving NLP, recommender systems and deep learning for computer vision.




  • Arthi Venkataraman (@arthi) 2 years ago

    This is a very relevant talk. It would be good if a deeper understanding of theano usage is also covered. For example how to interpret the theano debug graphs. How to solve specific issues like Disconnected graph errors. How to call non theano functions as part of the theano graph, etc.

  • Jaidev Deshpande (@jaidevd) Proposer 2 years ago

    Hi Arthi,
    The details of theano would be interesting to cover, but I’m worried if that might distract the audience from the central theme of the tutorial, which is neural networks. Theano graphs will be covered in brief (to the extent that they appear in multiple layers of a deep network), but I think it’s best to only cover very basic debugging. Maybe I’ll add one or two exercises at most about the internals of theano.


Login with Twitter or Google to leave a comment