The counterpropagation network consists of three layers - an input layer, a hidden Kohonen layer, and an output Grossberg layer. The Kohonen layer uses competitive learning to categorize input patterns in an unsupervised manner. During operation, the input pattern activates a single node in the Kohonen layer, which then activates the appropriate output pattern in the Grossberg layer. Effectively, the counterpropagation network acts as a lookup table to map input patterns to associated output patterns by determining which stored pattern category the input belongs to.