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

Class DoubleRect2dSwitchboard


Special 2d Switchboard where each inner point is covered twice.

First the input is covered with non-overlapping rectangular fields.
Then the input is covered with fields of the same size that are shifted
in the x and y direction by half the field size (we call this the
uneven fields).

Note that the output of this switchboard cannot be interpreted as
a rectangular grid, because the short rows are shifted. Instead it is
a rhombic grid (it is not a hexagonal grid because the distances of the
field centers do not satisfy the necessary relation).
See http://en.wikipedia.org/wiki/Lattice_(group)

Example for a 6x4 input and a field size of 2 in both directions:

long row fields:

1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6

short row fields:

* * * * * *
* 7 7 8 8 *
* 7 7 8 8 *
* * * * * *

Note that the short row channels come after all the long row connections in
the connections sequence.

public attributes (in addition to init arguments and inherited attributes):
    x_unused_channels
    y_unused_channels
    x_long_out_channels -- Output channels in the long rows.
    y_long_out_channels

Nested Classes [hide private]
    Inherited from Node
  __metaclass__
This Metaclass is meant to overwrite doc strings of methods like execute, stop_training, inverse with the ones defined in the corresponding private methods _execute, _stop_training, _inverse, etc...
Instance Methods [hide private]
 
__init__(self, x_in_channels, y_in_channels, x_field_channels, y_field_channels, in_channel_dim=1, ignore_cover=False)
Calculate the connections.

Inherited from ChannelSwitchboard: get_out_channel_node

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

    Inherited from Switchboard
 
_execute(self, x)
 
_inverse(self, x)
 
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 Node
 
__add__(self, other)
 
__call__(self, x, *args, **kargs)
Calling an instance of Node is equivalent to call its 'execute' method.
 
__repr__(self)
repr(x)
 
__str__(self)
str(x)
 
_check_input(self, x)
 
_check_output(self, y)
 
_check_train_args(self, x, *args, **kwargs)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_get_train_seq(self)
 
_if_training_stop_training(self)
 
_pre_execution_checks(self, x)
This method contains all pre-execution checks.
 
_pre_inversion_checks(self, y)
This method contains all pre-inversion checks.
 
_refcast(self, x)
Helper function to cast arrays to the internal dtype.
 
_set_dtype(self, t)
 
_set_input_dim(self, n)
 
_set_output_dim(self, n)
 
_stop_training(self, *args, **kwargs)
 
_train(self, x)
 
copy(self, protocol=-1)
Return a deep copy of the node.
 
execute(self, x, *args, **kargs)
Process the data contained in '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.
 
inverse(self, y, *args, **kargs)
Invert 'y'.
 
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'.
 
set_dtype(self, t)
Set internal structures' dtype.
 
set_input_dim(self, n)
Set input dimensions.
 
set_output_dim(self, n)
Set output dimensions.
 
stop_training(self, *args, **kwargs)
Stop the training phase.
 
train(self, x, *args, **kwargs)
Update the internal structures according to the input data 'x'.
Properties [hide private]

Inherited from object: __class__

    Inherited from Node
  _train_seq
List of tuples: [(training-phase1, stop-training-phase1), (training-phase2, stop_training-phase2), ...
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, x_in_channels, y_in_channels, x_field_channels, y_field_channels, in_channel_dim=1, ignore_cover=False)
(Constructor)

 
Calculate the connections.

Keyword arguments:
x_in_channels -- Number of input channels in the x-direction.
    This has to be specified, since the actual input is only one
    1d array.
y_in_channels -- Number of input channels in the y-direction
in_channel_dim -- Number of connections per input channel
x_field_channels -- Number of channels in each field in the
    x-direction, must be even number.
y_field_channels -- Number of channels in each field in the
    y-direction, must be even number.
ignore_cover -- Boolean value defines if an 
    Rectangular2dSwitchboardException is raised when the fields do not
    cover all input channels. Set this to True if you are willing to
    risk loosing input channels at the border.

Overrides: object.__init__