The Complete SPRLIB & ANNLIB

MAP

- unit group datatype

SYNOPSIS

typedef struct map

{

char MapName[80]; A description of the map.

long MapId; Map identification number.

long SizeX; Size of map (x).

long SizeY; Size of map (y).

long FilterSizeX; Size of filter in previous map (x).

long FilterSizeY; Size of filter in previous map (y).

long NumUnits; Number of units in this map.

long PixelShiftX; Step size for filtering (x).

long PixelShiftY; Step size for filtering (y).

struct map **ConnectedMap; An array of pointers to others. The last entry is followed by a NULL pointer.

int NoMaskElements; The actual number of unique weights in the filter.

int *Mask; An array of indices.

UNIT *FirstUnit; Pointer to first unit in map.

UNIT *LastUnit; Pointer to last unit in map.

union system_data SystemData; Union of data for algorithms.

union system_data UserData; Union of data for library user.

struct map *Next; Pointer to next map.

struct map *Prev; Pointer to previous map.

} MAP;

DESCRIPTION

This type is used to represent a group of units within a layer, currently only for shared weights networks. These networks are often used in image processing and have a resemblance to image filtering. If such a map is situated in a layer L+1, the maps to which it is connected in layer L (indicated by the array ConnectedMap) are scanned with filters of size FilterSizeX by FilterSizeY, with a step-size of PixelShiftX and PixelShiftY. In this way, all units in the map are connected to distinct areas in the previous maps through a set of PixelShiftX times PixelShiftY shared weights. Within this filter, weights can be shared too. The number of unique weights is given by the NumMaskElements entry. For each filter weight, an index is given in the Mask array indicating the number of the weight it should share; for example, for a 3 by 3 filter and a Mask array [0 1 0 1 0 1 0 1 0] (NumMaskElements = 3), there would be only 3 shared weights distributed over the filter as:
  WEIGHT 0   WEIGHT 1   WEIGHT 0
  WEIGHT 1   WEIGHT 0   WEIGHT 1
  WEIGHT 0   WEIGHT 1   WEIGHT 0

NOTE

All maps are stored in a double linked list. The MAP structure is usually filled by a network creation function (create_sharednet).

SEE ALSO

NET, LAYER, UNIT, WEIGHT, system_data

This document was generated using api2html on Thu Mar 5 09:00:00 MET DST 1998