I believe this error message is valid:

"This could be because input headers are mislabeled, or because input data
rows do not contain a value for 'Low'"

Because in your run.py you are not passing in a value for "Low":

result = model.run({
      "Date": date,
      "Volume": volume
    })

You're only passing in "Date" and "Volume". You need to pull out the "Low"
value and give it as well.


---------
Matt Taylor
OS Community Flag-Bearer
Numenta


On Mon, Jun 30, 2014 at 2:42 PM, joseph skippings <[email protected]>
wrote:

> run.py file
> -----------------------------------------------------------------
> #!/usr/bin/env python
>
> import csv
> import datetime
>
>
> from nupic.frameworks.opf.modelfactory import ModelFactory
>
> from model_params import model_params
>
>
> DATE_FORMAT = "%Y-%m-%d"
>
>
>
> def createModel():
>   model = ModelFactory.create(model_params.MODEL_PARAMS)
>   model.enableInference({"predictedField": "Volume"})
>   return model
>
> def runModel(model):
>   inputFilePath = "table.csv"
>   inputFile = open(inputFilePath, "rb")
>   csvReader = csv.reader(inputFile)
>   # skip header rows
>   csvReader.next()
>   csvReader.next()
>   csvReader.next()
>
>   counter = 0
>   for row in csvReader:
>     counter += 1
>     if (counter % 100 == 0):
>       print "Read %i lines..." % counter
>     date = datetime.datetime.strptime(row[0], DATE_FORMAT)
>     volume = float(row[1])
>     result = model.run({
>       "Date": date,
>       "Volume": volume
>     })
>
>     prediction = result.inferences["multiStepBestPredictions"][1]
>     print prediction
>
>
> def runStockData():
>  model = createModel()
>  runModel(model)
>
> if __name__ == "__main__":
>    runStockData()
>
> ---------------------------------------------------------------------------------------------------------------------------
>
>
>
> ----------------------------------------------------------------------------------------------------------------------------
> model_params.py file
>
> ----------------------------------------------------------------------------------------------------------------------------
> MODEL_PARAMS = \
> { 'aggregationInfo': { 'days': 0,
>                        'fields': [],
>                        'hours': 0,
>                        'microseconds': 0,
>                        'milliseconds': 0,
>                        'minutes': 0,
>                        'months': 0,
>                        'seconds': 0,
>                        'weeks': 0,
>                        'years': 0},
>   'model': 'CLA',
>   'modelParams': { 'anomalyParams': { u'anomalyCacheRecords': None,
>                                       u'autoDetectThreshold': None,
>                                       u'autoDetectWaitRecords': None},
>                    'clParams': { 'alpha': 0.025707736677855416,
>                                  'clVerbosity': 0,
>                                  'regionName': 'CLAClassifierRegion',
>                                  'steps': '1'},
>                    'inferenceType': 'TemporalMultiStep',
>                    'sensorParams': { 'encoders': { u'AdjClose': None,
>                                                    u'Close': None,
>                                                    u'Date_dayOfWeek': None,
>                                                    u'Date_timeOfDay': None,
>                                                    u'Date_weekend': None,
>                                                    u'High': None,
>                                                    u'Low': { 'clipInput':
> True,
>                                                              'fieldname':
> 'Low',
>                                                              'maxval':
> 41.02,
>                                                              'minval': 0.0,
>                                                              'n': 139,
>                                                              'name': 'Low',
>                                                              'type':
> 'ScalarEncoder',
>                                                              'w': 21},
>                                                    u'Open': None,
>                                                    u'Volume': None,
>                                                    '_classifierInput': {
> 'classifierOnly': True,
>
> 'clipInput': True,
>
> 'fieldname': 'Volume',
>
> 'maxval': 66062700,
>
> 'minval': 0.0,
>
> 'n': 154,
>
> 'name': '_classifierInput',
>
> 'type': 'ScalarEncoder',
>
> 'w': 21}},
>                                      'sensorAutoReset': None,
>                                      'verbosity': 0},
>                    'spEnable': True,
>                    'spParams': { 'columnCount': 2048,
>                                  'globalInhibition': 1,
>                                  'inputWidth': 0,
>                                  'maxBoost': 2.0,
>                                  'numActiveColumnsPerInhArea': 40,
>                                  'potentialPct': 0.8,
>                                  'seed': 1956,
>                                  'spVerbosity': 0,
>                                  'spatialImp': 'cpp',
>                                  'synPermActiveInc': 0.05,
>                                  'synPermConnected': 0.1,
>                                  'synPermInactiveDec':
> 0.08283067560973391},
>                    'tpEnable': True,
>                    'tpParams': { 'activationThreshold': 13,
>                                  'cellsPerColumn': 32,
>                                  'columnCount': 2048,
>                                  'globalDecay': 0.0,
>                                  'initialPerm': 0.21,
>                                  'inputWidth': 2048,
>                                  'maxAge': 0,
>                                  'maxSegmentsPerCell': 128,
>                                  'maxSynapsesPerSegment': 32,
>                                  'minThreshold': 10,
>                                  'newSynapseCount': 20,
>                                  'outputType': 'normal',
>                                  'pamLength': 2,
>                                  'permanenceDec': 0.1,
>                                  'permanenceInc': 0.1,
>                                  'seed': 1960,
>                                  'temporalImp': 'cpp',
>                                  'verbosity': 0},
>                    'trainSPNetOnlyIfRequested': False},
>   'predictAheadTime': None,
>   'version': 1}
>
>
> On Mon, Jun 30, 2014 at 5:00 PM, Matthew Taylor <[email protected]> wrote:
>
>> When you run the "run.py" file, you're not using the swarm description
>> anymore. The swarm description is used to get the best model parameters.
>> The run.py uses the model params returned by the swarm to create a new
>> NuPIC model and pass data into it.
>>
>> Can you show me your model params python file as well as your new run.py
>> file? Even better, can you push your code to Github or Bitbucket?
>>
>>  ---------
>> Matt Taylor
>> OS Community Flag-Bearer
>> Numenta
>>
>>
>> On Mon, Jun 30, 2014 at 12:52 PM, joseph skippings <
>> [email protected]> wrote:
>>
>>> I fixed the last error and ran into another (error message below) . Is
>>> this occurring because the fields open, high, low, close and adjclose are
>>> included in the description.py and, not included in the run.py??
>>>
>>> ------------------------------------------------------------------------------------------------------------------------
>>>
>>>
>>> --------------------------------------------------------------------------------------------------------------------
>>>
>>>
>>> Traceback (most recent call last):
>>>   File "run.py", line 50, in <module>
>>>     runStockData()
>>>   File "run.py", line 47, in runStockData
>>>     runModel(model)
>>>   File "run.py", line 38, in runModel
>>>     "Volume": volume
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/frameworks/opf/clamodel.py",
>>> line 391, in run
>>>     self._sensorCompute(inputRecord)
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/frameworks/opf/clamodel.py",
>>> line 461, in _sensorCompute
>>>     sensor.compute()
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/engine/__init__.py",
>>> line 443, in compute
>>>     return self._region.compute()
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/bindings/engine_internal.py",
>>> line 1235, in compute
>>>     return _engine_internal.Region_compute(*args, **kwargs)
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/regions/RecordSensor.py",
>>> line 294, in compute
>>>     self.encoder.encodeIntoArray(data, outputs["dataOut"])
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/encoders/multi.py",
>>> line 74, in encodeIntoArray
>>>     encoder.encodeIntoArray(self._getInputValue(obj, name),
>>> output[offset:])
>>>   File
>>> "/home/wolf_maroon/nupic/build/release/lib/python2.7/site-packages/nupic/encoders/base.py",
>>> line 223, in _getInputValue
>>>     fieldName, knownFields, fieldName
>>> ValueError: Unknown field name 'Low' in input record. Known fields are
>>> 'Date, Volume'.
>>> This could be because input headers are mislabeled, or because input
>>> data rows do not contain a value for 'Low'
>>> ------------------------------------------------------
>>> SWARM_DESCRIPTION = {
>>>   "includedFields": [
>>>     {
>>>       "fieldName": "Date",
>>>       "fieldType": "datetime"
>>>     },
>>>     {
>>>       "fieldName": "Open",
>>>       "fieldType": "float",
>>>       "maxValue": 41.33,
>>>       "minValue": 0.0
>>>     },
>>>     {
>>>       "fieldName": "High",
>>>       "fieldType": "float",
>>>       "maxValue": 41.72,
>>>       "minValue": 0.0
>>>     },
>>>     {
>>>       "fieldName": "Low",
>>>       "fieldType": "float",
>>>       "maxValue": 41.02,
>>>       "minValue": 0.0
>>>     },
>>>     {
>>>    "fieldName": "Close",
>>>       "fieldType": "float",
>>>       "maxValue": 41.23,
>>>       "minValue": 0.0
>>>     },
>>>     {
>>>       "fieldName": "Volume",
>>>       "fieldType": "float",
>>>       "maxValue": 66062700,
>>>       "minValue": 0.0
>>>     },
>>>     {
>>>       "fieldName": "AdjClose",
>>>       "fieldType": "float",
>>>       "maxValue": 41.23,
>>>       "minValue": 0.0
>>>     }
>>>   ],
>>>   "streamDef": {
>>>     "info": "Volume",
>>>     "version": 1,
>>>     "streams": [
>>>       {
>>>         "info": "yahoo_data_test",
>>>         "source": "file://table.csv",
>>>         "columns": [
>>>           "*"
>>>         ]
>>>       }
>>>     ]
>>>   },
>>>
>>>   "inferenceType": "TemporalMultiStep",
>>>   "inferenceArgs": {
>>>     "predictionSteps": [
>>>       1
>>>     ],
>>>     "predictedField": "Volume"
>>>   },
>>>   "iterationCount": -1,
>>>   "swarmSize": "medium"
>>> }
>>> -----------------------------------------------------------
>>>
>>>
>>>
>>> On Mon, Jun 30, 2014 at 2:10 PM, Matthew Taylor <[email protected]>
>>> wrote:
>>>
>>>> Thanks for the extra details. Try renaming your "table_model_params.py"
>>>> file to "model_params.py". Is the "table_model_params.py" in a
>>>> directory called "model_params"? If so, you might need to create an empty
>>>> file within that directory called "__init__.py". This tells python to treat
>>>> that directory as an importable module. See the structure of the example at
>>>> https://github.com/numenta/nupic/tree/master/examples/opf/clients/hotgym/prediction/one_gym/model_params
>>>>
>>>> ---------
>>>> Matt Taylor
>>>> OS Community Flag-Bearer
>>>> Numenta
>>>>
>>>>
>>>> On Mon, Jun 30, 2014 at 10:58 AM, joseph skippings <
>>>> [email protected]> wrote:
>>>>
>>>>> Using the hot_gym tutorial on youtube as a guide, I am trying to get
>>>>> my run.py file to complie. Command python swarm.py ran successfully
>>>>> creating the model params folder and file but  when running the command
>>>>> python run.py I get the error below.  Inside the model_params folder the
>>>>> file is called table_model_params.py.
>>>>>
>>>>> --------------------------------------------------------------------------------------------
>>>>> python run.py
>>>>> Traceback (most recent call last):
>>>>>   File "run.py", line 8, in <module>
>>>>>     from model_params import model_params
>>>>> ImportError: No module named model_params
>>>>>
>>>>>  
>>>>> -------------------------------------------------------------------------------------------------
>>>>>
>>>>> #!/usr/bin/env python
>>>>>
>>>>> import csv
>>>>> import datetime
>>>>>
>>>>> from nupic.frameworks.opf.modelfactory import ModelFactory
>>>>>
>>>>> from model_params import model_params
>>>>>
>>>>>
>>>>> DATE_FORMAT = "%y/%m/%d"
>>>>>
>>>>>
>>>>> def createModel(modelParams):
>>>>>   model = ModelFactory.create(model_Params.MODEL_PARAMS)
>>>>>   model.enableInference({"predictedField": "Volume"})
>>>>>   return model
>>>>>
>>>>> def runModel(model):
>>>>>   inputFilePath = "table.csv"
>>>>>   inputFile = open(inputFilePath, "rb")
>>>>>   csvReader = csv.reader(inputFile)
>>>>>   # skip header rows
>>>>>   csvReader.next()
>>>>>   csvReader.next()
>>>>>   csvReader.next()
>>>>>
>>>>>   counter = 0
>>>>>   for row in csvReader:
>>>>>     counter += 1
>>>>>     if (counter % 100 == 0):
>>>>>       print "Read %i lines..." % counter
>>>>>     date = datetime.datetime.strptime(row[0], DATE_FORMAT)
>>>>>     volume = float(row[1])
>>>>>     result = model.run({
>>>>>       "Date": date,
>>>>>       "Volume": volume
>>>>>     })
>>>>>
>>>>>     prediction = result.inferences["multiStepBestPredictions"][1]
>>>>>     print prediction
>>>>>
>>>>>
>>>>> def runStockData():
>>>>>  model = createModel()
>>>>>  runModel(model)
>>>>>
>>>>> if __name__ == "__main__":
>>>>>    runStockData()
>>>>>
>>>>> ------------------------------------------
>>>>>
>>>>>
>>>>>
>>>>> On Mon, Jun 30, 2014 at 1:25 PM, Matthew Taylor <[email protected]>
>>>>> wrote:
>>>>>
>>>>>> Joseph,
>>>>>>
>>>>>> When reporting problems to the mailing list, it is essential that you
>>>>>> include the following information so we can help you:
>>>>>>
>>>>>> - exact command you ran that received the error
>>>>>> - any steps you took before that command
>>>>>> - what you are trying to achieve with the command
>>>>>> - complete output that contains the error (use pastebin.com if it is
>>>>>> very long)
>>>>>>
>>>>>> From what I can tell about your report, you have model params in a
>>>>>> file named "table_model_params.py", but you are importing "model_params".
>>>>>> You should "import table_model_params" to get that file imported into
>>>>>> another Python script.
>>>>>>
>>>>>> ---------
>>>>>> Matt Taylor
>>>>>> OS Community Flag-Bearer
>>>>>> Numenta
>>>>>>
>>>>>>
>>>>>> On Mon, Jun 30, 2014 at 9:48 AM, Joseph Skippings <
>>>>>> [email protected]> wrote:
>>>>>>
>>>>>>> Hello,
>>>>>>>
>>>>>>>         I get this error when I run file run.py "From model_params
>>>>>>>  import model_params. ImportError: no module named model_params." In my
>>>>>>> model_params folder the file is called table_model_params.py, I'm not 
>>>>>>> sure
>>>>>>> if that is causing the error.
>>>>>>>
>>>>>>> Thanks in advance.
>>>>>>>
>>>>>>> Sent from my iPhone
>>>>>>> _______________________________________________
>>>>>>> nupic mailing list
>>>>>>> [email protected]
>>>>>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> nupic mailing list
>>>>>> [email protected]
>>>>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> nupic mailing list
>>>>> [email protected]
>>>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> nupic mailing list
>>>> [email protected]
>>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>>>
>>>>
>>>
>>> _______________________________________________
>>> nupic mailing list
>>> [email protected]
>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>>
>>>
>>
>> _______________________________________________
>> nupic mailing list
>> [email protected]
>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>>
>>
>
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>
>
_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to