Package mdp :: Package hinet :: Class OnlineLayer
[hide private]
[frames] | no frames]

Class OnlineLayer


OnlineLayers are nodes which consist of multiple horizontally parallel OnlineNodes.
OnlineLayer also supports trained or non-trainable Nodes.

Reference:
A trained Node: node.is_trainable() returns True, node.is_training() returns False.
A non-trainable Node: node.is_trainable() returns False, node.is_training() returns False.

The incoming data is split up according to the dimensions of the internal
nodes. For example if the first node has an input_dim of 50 and the second
node 100 then the layer will have an input_dim of 150. The first node gets
x[:,:50], the second one x[:,50:].

Any additional arguments are forwarded unaltered to each node.

Since they are nodes themselves layers can be stacked in a flow (e.g. to
build a layered network). If one would like to use flows instead of nodes
inside of a layer one can use flownodes.

Instance Methods [hide private]
 
__init__(self, nodes, dtype=None, numx_rng=None)
Setup the layer with the given list of nodes.
 
_check_compatibility(self, nodes)
 
_get_train_seq(self)
Return the train sequence.
 
_set_numx_rng(self, rng)
 
_set_training_type_from_nodes(self, nodes)
 
set_training_type(self, training_type)
Sets the training type

Inherited from unreachable.newobject: __long__, __native__, __nonzero__, __unicode__, next

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __setattr__, __sizeof__, __subclasshook__

    Inherited from Layer
 
__contains__(self, item)
 
__getitem__(self, key)
 
__iter__(self)
 
__len__(self)
 
_check_props(self, dtype)
Check the compatibility of the properties of the internal nodes.
 
_execute(self, x, *args, **kwargs)
Process the data through the internal nodes.
 
_get_output_dim_from_nodes(self)
Calculate the output_dim from the nodes and return it.
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_inverse(self, x, *args, **kwargs)
Combine the inverse of all the internal nodes.
 
_pre_execution_checks(self, x)
Make sure that output_dim is set and then perform normal checks.
 
_set_dtype(self, t)
 
_stop_training(self, *args, **kwargs)
Stop training of the internal nodes.
 
_train(self, x, *args, **kwargs)
Perform single training step by training the internal nodes.
 
execute(self, x, *args, **kwargs)
Process the data through the internal nodes.
 
inverse(self, x, *args, **kwargs)
Combine the inverse of all the internal nodes.
 
is_invertible(self)
Return True if the node can be inverted, False otherwise.
 
is_trainable(self)
Return True if the node can be trained, False otherwise.
 
stop_training(self, *args, **kwargs)
Stop training of the internal nodes.
 
train(self, x, *args, **kwargs)
Perform single training step by training the internal nodes.
    Inherited from OnlineNode
 
__add__(self, other)
 
__repr__(self)
repr(x)
 
_check_input(self, x)
 
_check_params(self, x)
 
_get_supported_training_types(self)
Return the list of training types supported by this node.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
get_current_train_iteration(self)
Return the index of the current training iteration.
 
get_numx_rng(self)
Return input dimensions.
 
set_numx_rng(self, rng)
Set numx random number generator. Note that subclasses should overwrite self._set_numx_rng when needed.
    Inherited from Node
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling its execute method.
 
__str__(self)
str(x)
 
_check_output(self, y)
 
_check_train_args(self, x, *args, **kwargs)
 
_if_training_stop_training(self)
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
copy(self, protocol=None)
Return a deep copy of the node.
 
get_current_train_phase(self)
Return the index of the current training phase.
 
get_dtype(self)
Return dtype.
 
get_input_dim(self)
Return input dimensions.
 
get_output_dim(self)
Return output dimensions.
 
get_remaining_train_phase(self)
Return the number of training phases still to accomplish.
 
get_supported_dtypes(self)
Return dtypes supported by the node as a list of numpy.dtype objects.
 
has_multiple_training_phases(self)
Return True if the node has multiple training phases.
 
is_training(self)
Return True if the node is in the training phase, False otherwise.
 
save(self, filename, protocol=-1)
Save a pickled serialization of the node to filename. If filename is None, return a string.
 
set_dtype(self, t)
Set internal structures' dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
Static Methods [hide private]
 
_check_value_type_is_compatible(value)
Properties [hide private]

Inherited from object: __class__

    Inherited from OnlineNode
  _train_seq
List of tuples:
  numx_rng
Numpy seeded random number generator
  training_type
Training type (Read only)
    Inherited from Node
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, nodes, dtype=None, numx_rng=None)
(Constructor)

 
Setup the layer with the given list of nodes.

The input and output dimensions for the nodes must be already set
(the output dimensions for simplicity reasons).

Keyword arguments:
nodes -- List of the nodes to be used.

Overrides: object.__init__

_check_compatibility(self, nodes)

 

_check_value_type_is_compatible(value)
Static Method

 

_get_train_seq(self)

 
Return the train sequence.
Use OnlineNode train_seq not Layer's

Overrides: Node._get_train_seq

_set_numx_rng(self, rng)

 
Overrides: OnlineNode._set_numx_rng

_set_training_type_from_nodes(self, nodes)

 

set_training_type(self, training_type)

 
Sets the training type

Overrides: OnlineNode.set_training_type