What is the purpose of the _classifierInput encoder field in the model parameters?

183 Views Asked by At

If you take a look at default model parameters as created by Cerebro, you see the following encoders:

{
  'encoders': {
    '_classifierInput': {
      'classifierOnly': True,
      'clipInput': True,
      'fieldname': u'f',
      'n': 100,
      'name': '_classifierInput',
      'type': 'AdaptiveScalarEncoder',
      'w': 21
    },
    u'f': {
      'clipInput': True,
      'fieldname': u'f',
      'n': 100,
      'name': u'f',
      'type': 'AdaptiveScalarEncoder',
      'w': 21
    }
  }
}

What is the purpose of the _classifierInput encoder field? It looks like it just mirrors the encoder field that comes after it.

1

There are 1 best solutions below

0
On BEST ANSWER

This is in clamodel.py:

def _getClassifierOnlyEncoder(self):
  """
  Returns:  sensor region's encoder that is sent only to the classifier,
            not to the bottom of the network
  """
  return  self._getSensorRegion().getSelf().disabledEncoder

If you want the CLA to learn to predict (or "compute") a value, but not to use the value as input data, I think this is how you do it. For instance, you might have training data which includes the "answer" but this will be missing later (this is how a lot of the ML competitions work).