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

Class OnlineFlowNode


OnlineFlowNode wraps an OnlineFlow of OnlineNodes into a single OnlineNode.

This is handy if you want to use an OnlineFlow where an OnlineNode is required.
Additional args and kwargs for train and execute are supported.

An OnlineFlowNode requires that all the nodes of the input onlineflow to be either:
(a) OnlineNodes (eg. OnlineCenteringNode(), IncSFANode(), etc.),
 or
(b) trained Nodes (eg. a fully trained PCANode with no remaining training phases. A trained Node's
node.is_trainable() returns True and node.is_training() returns False.),
 or
(c) non-trainable Nodes (eg. QuadraticExpansionNode(). A non-trainable Node's node.is_trainable()
returns False and node.is_training() returns False.).

OnlineFlowNode does not support an onlineflow with a terminal trainable Node that is not
an OnlineNode (see doc string of OnlineFlow for reference).

All the read-only container slots are supported and are forwarded to the internal flow.

Instance Methods [hide private]
 
__init__(self, flow, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
Wrap the given flow into this node.
 
_get_train_seq(self)
Return a training sequence containing all training phases.
 
_set_numx_rng(self, rng)
 
_set_training_type_from_flow(self, flow)
 
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 FlowNode
 
__contains__(self, item)
 
__getitem__(self, key)
 
__iter__(self)
 
__len__(self)
 
_execute(self, x, *args, **kwargs)
 
_fix_nodes_dimensions(self)
Try to fix the dimensions of the internal nodes.
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_inverse(self, x)
 
_set_dtype(self, t)
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
copy(self, protocol=None)
Return a copy of this node.
 
execute(self, x, *args, **kwargs)
Process the data contained in `x`.
 
inverse(self, x)
Invert `y`.
 
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.
    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_execution_checks(self, x)
This method contains all pre-execution checks. It can be used when a subclass defines multiple execution methods.
 
_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.
 
stop_training(self, *args, **kwargs)
Stop the training phase.
 
train(self, x, *args, **kwargs)
Update the internal structures according to the input data x.
    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.
 
_stop_training(self, *args, **kwargs)
 
_train(self, x)
 
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_compatibility(flow)
Properties [hide private]

Inherited from object: __class__

    Inherited from FlowNode
  flow
Read-only internal flow property.
    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, flow, input_dim=None, output_dim=None, dtype=None, numx_rng=None)
(Constructor)

 
Wrap the given flow into this node.

Pretrained nodes are allowed, but the internal flow should not
be modified after the FlowNode was created (this will cause problems
if the training phase structure of the internal nodes changes).

If the node dimensions and dtype are not specified, they will be
extracted from the internal nodes (late dimension setting is also
supported).

flow can have crash recovery enabled, but there is no special support
for it.

Overrides: object.__init__
(inherited documentation)

_check_compatibility(flow)
Static Method

 

_get_train_seq(self)

 
Return a training sequence containing all training phases.

Unlike thw FlowNode, the OnlineFlowNode requires only
one train_seq item for each node. Each node's train function
takes care of its multiple train phases (if any).

Overrides: Node._get_train_seq

_set_numx_rng(self, rng)

 
Overrides: OnlineNode._set_numx_rng

_set_training_type_from_flow(self, flow)

 

set_training_type(self, training_type)

 
Sets the training type

Overrides: OnlineNode.set_training_type