Note
This has been added in release 0.7.
Note
This works, but is not well integrated with the rest of Theano. If speed is important, it is probably better to pad to a dense tensor.
This is a type that represents a list in Theano. All elements must have the same Theano type. Here is an example:
import theano.typed_list
tl = theano.typed_list.TypedListType(theano.tensor.fvector)()
v = theano.tensor.fvector()
o = theano.typed_list.append(tl, v)
f = theano.function([tl, v], o)
print f([[1, 2, 3], [4, 5]], [2])
#[array([ 1., 2., 3.], dtype=float32), array([ 4., 5.], dtype=float32), array([ 2.], dtype=float32)]
A second example with Scan. Scan doesn’t yet have direct support of TypedList, so you can only use it as non_sequences (not in sequences or as outputs):
import theano.typed_list
a = theano.typed_list.TypedListType(theano.tensor.fvector)()
l = theano.typed_list.length(a)
s, _ = theano.scan(fn=lambda i, tl: tl[i].sum(),
non_sequences=[a],
sequences=[theano.tensor.arange(l, dtype='int64')])
f = theano.function([a], s)
f([[1, 2, 3], [4, 5]])
#array([ 6., 9.], dtype=float32)
Subclass to add the typed list operators to the basic Variable class.
Append an element at the end of another list.
Parameters: |
|
---|
Count the number of times an element is in the typed list.
Parameters: |
|
---|---|
Note: | Python implementation of count doesn’t work when we want to count an ndarray from a list. This implementation works in that case. |
Append all elements of a list at the end of another list.
Parameters: |
|
---|
Get specified slice of a typed list.
Parameters: |
|
---|
Insert an element at an index in a typed list.
Parameters: |
|
---|
Returns the size of a list.
Parameters: | x – typed list. |
---|
Build a Python list from those Theano variable.
Parameters: | a – tuple/list of Theano variable |
---|---|
Note: | All Theano variable must have the same type. |
Remove an element from a typed list.
Parameters: |
|
---|---|
Note: | Python implementation of remove doesn’t work when we want to remove an ndarray from a list. This implementation works in that case. |
Reverse the order of a typed list.
Parameters: | x – the typed list to be reversed. |
---|