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):
    unused_channels_xy
    long_out_channels_xy -- Output channels in the long rows.

Instance Methods [hide private]
 
__init__(self, in_channels_xy, field_channels_xy, in_channel_dim=1, ignore_cover=False)
Calculate the connections.

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 ChannelSwitchboard
 
get_out_channel_input(self, channel)
Return the input connections for the given channel index.
 
get_out_channel_node(self, channel)
Return a Switchboard that does the routing for a single output channel.
 
get_out_channels_input_channels(self, channels)
Return array of input channel indices for the given output channels.
    Inherited from Switchboard
 
_execute(self, x)
 
_get_supported_dtypes(self)
Return the list of dtypes supported by this node.
 
_inverse(self, x)
 
execute(self, x)
Process the data contained in `x`.
 
inverse(self, x)
Invert `y`.
 
is_invertible(self)
Return True if the node can be inverted, False otherwise.
    Inherited from Node
 
__add__(self, other)
 
__call__(self, x, *args, **kwargs)
Calling an instance of Node is equivalent to calling 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_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=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 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.
 
stop_training(self, *args, **kwargs)
Stop the training phase.
 
train(self, x, *args, **kwargs)
Update the internal structures according to the input data x.
Static Methods [hide private]
    Inherited from Switchboard
 
is_trainable()
Return True if the node can be trained, False otherwise.
Properties [hide private]

Inherited from object: __class__

    Inherited from Node
  _train_seq
List of tuples:
  dtype
dtype
  input_dim
Input dimensions
  output_dim
Output dimensions
  supported_dtypes
Supported dtypes
Method Details [hide private]

__init__(self, in_channels_xy, field_channels_xy, in_channel_dim=1, ignore_cover=False)
(Constructor)

 
Calculate the connections.

Keyword arguments:
in_channels_xy -- 2-Tuple with number of input channels in the x- and
    y-direction (or a single number for both). This has to be
    specified, since the actual input is only one 1d array.
field_channels_xy -- 2-Tuple with number of channels in each field in
    the x- and y-direction (or a single number for both).
    Must be even numbers.
in_channel_dim -- Number of connections per input channel
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__