Now, that you have understood the basics of Theano, let us begin with the different data types available to you for creating your expressions. The following table gives you a partial list of data types defined in Theano.
|Data type||Theano type|
bscalar, bvector, bmatrix, brow, bcol, btensor3, btensor4, btensor5, btensor6, btensor7
wscalar, wvector, wmatrix, wrow, wcol, wtensor3, wtensor4, wtensor5, wtensor6, wtensor7
iscalar, ivector, imatrix, irow, icol, itensor3, itensor4, itensor5, itensor6, itensor7
lscalar, lvector, lmatrix, lrow, lcol, ltensor3, ltensor4, ltensor5, ltensor6, ltensor7
fscalar, fvector, fmatrix, frow, fcol, ftensor3, ftensor4, ftensor5, ftensor6, ftensor7
dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4, dtensor5, dtensor6, dtensor7
cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4, ctensor5, ctensor6, ctensor7
The above list is not exhaustive and the reader is referred to the tensor creation document for a complete list.
I will now give you a few examples of how to create variables of various kinds of data in Theano.
To construct a scalar variable you would use the syntax −
x = theano.tensor.scalar ('x') x = 5.0 print (x)
To create a one dimensional array, use the following declaration −
f = theano.tensor.vector f = (2.0, 5.0, 3.0) print (f)f = theano.tensor.vector f = (2.0, 5.0, 3.0) print (f) print (f) print (f)
(2.0, 5.0, 3.0) 2.0 3.0
If you do f it would generate an index out of range error as shown here −
IndexError Traceback (most recent call last) <ipython-input-13-2a9c2a643c3a> in <module> 4 print (f) 5 print (f) ----> 6 print (f) IndexError: tuple index out of range
To declare a two-dimensional array you would use the following code snippet −
m = theano.tensor.matrix m = ([2,3], [4,5], [2,4]) print (m) print (m)
[2, 3] 4
To declare a 5-dimensional array, use the following syntax −
m5 = theano.tensor.tensor5 m5 = ([0,1,2,3,4], [5,6,7,8,9], [10,11,12,13,14]) print (m5) print (m5)
[5, 6, 7, 8, 9] 13
You may declare a 3-dimensional array by using the data type tensor3 in place of tensor5, a 4-dimensional array using the data type tensor4, and so on up to tensor7.
Sometimes, you may want to create variables of the same type in a single declaration. You can do so by using the following syntax −
from theano.tensor import * x, y, z = dmatrices('x', 'y', 'z') x = ([1,2],[3,4],[5,6]) y = ([7,8],[9,10],[11,12]) z = ([13,14],[15,16],[17,18]) print (x) print (y) print (z)
[5, 6] [9, 10] [13, 14]