typed_list – Typed List

Note

This is not in the released version 0.6.0, but will be in the next release (0.7 or 0.6.1).

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)
class theano.typed_list.basic.TypedListVariable(type, owner=None, index=None, name=None)

Subclass to add the typed list operators to the basic Variable class.

theano.typed_list.basic.append = <theano.typed_list.basic.Append object at 0xe458dcc>

Append an element at the end of another list.

Parameters:
  • x – the base typed list.
  • y – the element to append to x.
theano.typed_list.basic.count = <theano.typed_list.basic.Count object at 0xe44728c>

Count the number of times an element is in the typed list.

Parameters:
  • x – The typed list to look into.
  • elem – The element we want to count in list. The elements are compared with equals.
Note:

Python implementation of count doesn’t work when we want to count an ndarray from a list. This implementation works in that case.

theano.typed_list.basic.extend = <theano.typed_list.basic.Extend object at 0xe458c2c>

Append all elements of a list at the end of another list.

Parameters:
  • x – The typed list to extend.
  • toAppend – The typed list that will be added at the end of x.
theano.typed_list.basic.getitem = <theano.typed_list.basic.GetItem object at 0xe4592ac>

Get specified slice of a typed list.

Parameters:
  • x – typed list.
  • index – the index of the value to return from x.
theano.typed_list.basic.insert = <theano.typed_list.basic.Insert object at 0xe4586ac>

Insert an element at an index in a typed list.

Parameters:
  • x – the typed list to modify.
  • index – the index where to put the new element in x.
  • toInsert – The new element to insert.
theano.typed_list.basic.length = <theano.typed_list.basic.Length object at 0xe44748c>

Returns the size of a list.

Parameters:x – typed list.
theano.typed_list.basic.remove = <theano.typed_list.basic.Remove object at 0xe4589ac>

Remove an element from a typed list.

Parameters:
  • x – the typed list to be changed.
  • toRemove – an element to be removed from the typed list. We only remove the first instance.
Note:

Python implementation of remove doesn’t work when we want to remove an ndarray from a list. This implementation works in that case.

theano.typed_list.basic.reverse = <theano.typed_list.basic.Reverse object at 0xe45896c>

Reverse the order of a typed list.

Parameters:x – the typed list to be reversed.