shared - defines theano.shared

class shared.SharedVariable

Variable with Storage that is shared between functions that it appears in. These variables are meant to be created by registered shared constructors (see shared_constructor()).

The user-friendly constructor is shared()

value

Read/write access to the [non-symbolic] value/data associated with this SharedVariable.

Changes to this value will be visible to all functions using this SharedVariable.

__init__(self, name, type, value, strict, container=None)
Parameters:
  • name (None or str) – The name for this variable.
  • type – The Type for this Variable.
  • value – A value to associate with this variable (a new container will be created).
  • strict – True -> assignments to self.value will not be casted or copied, so they must have the correct type or an exception will be raised.
  • container – The container to use for this variable. This should instead of the value parameter. Using both is an error.
container

A container to use for this SharedVariable when it is an implicit function parameter.

Type:class:Container
theano.compile.sharedvalue.shared(value, name=None, strict=False, allow_downcast=None, **kwargs)

Return a SharedVariable Variable, initialized with a copy or reference of value.

This function iterates over constructor functions to find a suitable SharedVariable subclass. The suitable one is the first constructor that accept the given value.

This function is meant as a convenient default. If you want to use a specific shared variable constructor, consider calling it directly.

theano.shared is a shortcut to this function.

Notes

By passing kwargs, you effectively limit the set of potential constructors to those that can accept those kwargs.

Some shared variable have borrow as extra kwargs. See for details.

Some shared variable have broadcastable as extra kwargs. As shared variable shapes can change, all dimensions default to not being broadcastable, even if value has a shape of 1 along some dimension. This parameter allows you to create for example a row or column 2d tensor.

shared.constructors

A list of shared variable constructors that will be tried in reverse order.

shared.shared_constructor(ctor)

Append ctor to the list of shared constructors (see shared()).

Each registered constructor ctor will be called like this:

ctor(value, name=name, strict=strict, **kwargs)

If it do not support given value, it must raise a TypeError.