There are a couple of classes that specifically pay attention to the sub-groups of units within a layer, if these have been created (the other types of projections just ignore this level of structure).
There is a sub-class of the full projection called the
GpFullPrjnSpec, which does the same thing the full prjn spec, but
creates separate connection groups based on the sending and receiving
unit-group structure. Thus, the result is full connectivity, but this
is broken down so separate unit sub-groups can be treated separately
(e.g., if there were a weight-based competition between the units in a
sub-group, or between sub-groups). The n_con_groups
parameter
determines whether there is one con-group per RECV_SEND_PAIR
, or
just one per SEND_ONLY
, which is one con-group per unit-group on
the sending layer.
The GpOneToOnePrjnSpec connects unit groups in two layers in a one-to-one fashion, much as the OneToOnePrjnSpec connects units in a layer in a one-to-one fashion.
The GpOneToManyPrjnSpec connects one or more sending groups to all
receiving groups. It can greate these connections in a number of
separate connection groups, or all in one group, depending on the
n_con_groups
parameter (see GpFullPrjnSpec above). Note that the
recv_start
parameter is ignored, and only the send_start
,
which determines which sending group to start with, and the
n_conns
, which determines how many sending groups to use beyond
the start, are relevant.