Debugging CoordinateEncoder issues in NuPIC 1.0

@rhyolight, @scott, you can see the very simple code above, and here is a clearer trace (focusing on nupic libraries):

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.2.1\helpers\pydev\_pydevd_bundle\pydevd_exec.py", line 3, in Exec
    exec exp in global_vars, local_vars
  File "<input>", line 1, in <module>
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\frameworks\opf\htm_prediction_model.py", line 429, in run
    self._sensorCompute(inputRecord)
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\frameworks\opf\htm_prediction_model.py", line 514, in _sensorCompute
    sensor.compute()
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\engine\__init__.py", line 433, in compute
    return self._region.compute()
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\bindings\engine_internal.py", line 1856, in compute
    return _engine_internal.Region_compute(self)
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\bindings\regions\PyRegion.py", line 184, in guardedCompute
    return self.compute(inputs, DictReadOnlyWrapper(outputs))
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\regions\record_sensor.py", line 401, in compute
    outputs["bucketIdxOut"][:] = encoder.getBucketIndices(actualValue)
  File "C:\Users\amitai.perlstein\AppData\Local\Continuum\Anaconda2\envs\htm_101\lib\site-packages\nupic\encoders\base.py", line 351, in getBucketIndices
    assert False, "Should be implemented in base classes that are not " \
AssertionError: Should be implemented in base classes that are not containers for other encoders

@Amitai Your predicted field must be called vector for this to work:

1 Like

Thanks Matt,
setting predictedField = ‘vector’ sorted it out.
This is a subtle point. It isn’t so intuitive that a name HAS to be a specific sting in order for it to work.

No, it is not. The CoordinateEncoder certainly feels like a special case in the OPF, like it was shoehorned in. Because it was! :face_with_raised_eyebrow:

1 Like