Core Development Guide¶
The documentation of the core components of Theano is still a work in progress. For now this is a list of bits and pieces on the subject, some of them might be outdated though:
Making the double type – Tutorial for writing a new type in Theano. It introduces the basics concerning Theano datatypes.
Implementing double in C – Tutorial on how to make your type C-friendly.
Views and inplace operations – This is somewhere between extending Theano and describing how Theano works internally; it talks about views and inplace operations.
Graph optimization – Tutorial on how optimization work in Theano.
Overview of the compilation pipeline – Describes the steps of compiling a Theano Function.
Graph Structures – Describes the symbolic graphs generated by
theano.scan
.Unit Testing – Tutorial on how to use unittest in testing Theano.
Debugging with a customized so-called StepMode – How to step through the execution of a Theano function and print the inputs and outputs of each op.
Elemwise compiler – Description of element wise operations.
Max Gotcha – Describes the difference between
numpy.max
and Python max (something to consider when using max).Random Numbers – Description of how Theano deals with random numbers.
Sparse matrices – Description of the
sparse
type in Theano.