Alex Wiltschko gives a practical tutorial on Torch and Twitter's Autograd, explaining automatic differentiation as the core abstraction behind all deep learning libraries.

Alex Wiltschko: Machine learning engineer at Twitter, developer of the torch-autograd package; gives this deep learning school tutorial on the Torch ecosystem.
This is a technical lecture on the Torch deep learning ecosystem and the Lua language it is built on. The first half covers practical fundamentals: tensors as views into memory, GPU computation, and the NN, optim, and Autograd packages for building and training neural networks. The second half dives into automatic differentiation, explaining why reverse-mode (backpropagation) beats forward-mode for neural nets, and how Autograd traces program execution just-in-time to compute gradients through control flow, loops, and recursion. Wiltschko then situates Torch among other libraries (TensorFlow, Theano, Keras, Caffe, Chainer) by granularity and graph-construction strategy, and closes with ideas the field could import from older AD communities like weather modeling.
Blizzard Entertainment
“so in World of Warcraft all the graphics are in C++ or whatever they wrote it in but like the boss battles or the quests”— Alex Wiltschko
Adobe
“Adobe Lightroom is a photo processing app all the image processing is done in C++ but all the UI and everything was done in Lua”— Alex Wiltschko
Wolfram Research
“writing down the symbolic expression of a neural network putting it in Mathematica or maple and then it asking for the the derivative”— Alex Wiltschko
Maplesoft
“putting it in Mathematica or maple and then it asking for the the derivative because your expression might go from this to this”— Alex Wiltschko
MathWorks
“so torch is an array programming language for Lua right so it's like numpy it's like MATLAB but it's in the Lua language”— Alex Wiltschko