For El Capitan 10.11.3, the final step in the youtube https://www.youtube.com/watch?v=6OPTMDO17XI
These instructions no longer work, specifically the last step no longer works in El Capitan ./scripts/run_nupic_tests -bash: ./scripts/run_nupic_tests: No such file or directory I went out of my way to do a clean install, word for word - Finally I settled for OpenHTM. I would really appreciate getting this going on any system, so any help would be greatly appreciated. I am applying to Singularity U's GSP, and I was hoping to experiment with the platform while I am there, along with Nengo and Tensorflow. Moreover, specifically I would prefer to get the openCL flavor working, but one step at a time ;) If I missed this, please point me to the corresponding info, thanks cheers and woot! Thank you and Happy Valentine's Day to everyone, On Sun, Feb 14, 2016 at 12:00 PM, <[email protected]> wrote: > Send nupic mailing list submissions to > [email protected] > > To subscribe or unsubscribe, visit > http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org > or, via email, send a message with subject or body 'help' to > [email protected] > > You can reach the person managing the list at > [email protected] > > When replying, please edit your Subject line so it is more specific > than "Re: Contents of nupic digest..." > > > Today's Topics: > > 1. Re: Training NuPIC using 1st dataset and detect anomalies in > 2nd dataset (Wakan Tanka) > 2. Using anomalyProbability gives TypeError: cannot perform > reduce with flexible type (Wakan Tanka) > 3. Re: Using NuPIC to monitor Apache server Response Times > (Wakan Tanka) > 4. Re: Using anomalyProbability gives TypeError: cannot perform > reduce with flexible type (Wakan Tanka) > > > ---------------------------------------------------------------------- > > Message: 1 > Date: Sun, 14 Feb 2016 03:59:06 +0100 > From: Wakan Tanka <[email protected]> > To: "NuPIC general mailing list." <[email protected]> > Subject: Re: Training NuPIC using 1st dataset and detect anomalies in > 2nd dataset > Message-ID: <[email protected]> > Content-Type: text/plain; charset=utf-8; format=flowed > > Thank you very much Matt, informative as always ;) > > One more questions: > > > 2) Swarming is optimized only for prediction. It may not be the best > > method to find model params for anomalies. We have identified a set of > > model params that are decent for most one-dimensional scalar input > > anomaly detection, and we generally reuse those in all our anomaly > models. > > 1. Isn't anomaly just prediction where NuPIC missed. Why is such > difference between anomaly and prediction during swarming? > > 2. Is it possible to somehow display and being able to read something > useful from the internal state of model object? > > 3. Regarding inferenceType: is there any type which is combination of > TemporalMultiStep and TemporalAnomaly or is there any reason why NuPIC > cannot output multiple steps and also anomalies at the same time? > > Thank you very much. > > > On 02/11/2016 05:22 PM, Matthew Taylor wrote: > > To answer your questions: > > > > 1a) Yes, you can disable learning on the model object by calling > > model.disableLearning() [1]. It will no longer update its internal state > > after you have called this function. So you could do this before the > > examples gets to the missing Tuesdays, and it will not learn the > > "missing Tuesdays" pattern. You can re-enable learning with the > > enableLearning() method [2]. > > > > 1b) You can save the model to disk by calling the model.save(<path>) > > function [3] and resurrect a model you've already saved by calling > > ModelFactory.loadFromCheckpoint(<path>) [4]. > > > > 2) Swarming is optimized only for prediction. It may not be the best > > method to find model params for anomalies. We have identified a set of > > model params that are decent for most one-dimensional scalar input > > anomaly detection, and we generally reuse those in all our anomaly > models. > > > > 3) I don't quite understand the question, but I think when someone says > > "creating a model" they are generally referring to the process of > > identifying the best model params for a particular data stream. It > > probably does not refer to the model learning the patterns. > > > > 4) This search might help you find more info about "inferenceType" [5]. > > There is a wiki page [6] but it needs to be filled in. Anyone want to > > help? As for your question about temporal data, you should read this > > thread on our mailing list from last month [7]. Cortical.io's core > > technology does not deal with temporal data, true. But they are dealing > > mostly in the interesting properties of SDRs, which are a part of HTM > > theory, but not the whole. We are working with CIO to identify ways to > > improve natural language processing by consuming the temporal element of > > language as well. For example, you could consider this entire email -- > > indeed this entire mailing list -- a temporal data stream of text. This > > ability to process temporal language is not currently one of their > > capabilities, but it is a future goal of ours (not to speak for them, > > but we've talked openly about it). > > > > [1] > > > http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#ae3efe32f87f56e9fd3edfb499b87263f > > [2] > > > http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#af9756982485e3d520db6b1c99f4d1e39 > > [3] > > > http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1model_1_1_model.html#aba0970ece8740693d3b82e656500a9c0 > > [4] > > > http://numenta.org/docs/nupic/classnupic_1_1frameworks_1_1opf_1_1modelfactory_1_1_model_factory.html#a73b1a13824e1990bd42deb288a594583 > > [5] http://numenta.org/search/?q=inferenceType > > [6] https://github.com/numenta/nupic/wiki/Inference-Types > > [7] > > > http://lists.numenta.org/pipermail/nupic_lists.numenta.org/2016-January/012607.html > > > > Hope that helps, > > > > > > --------- > > Matt Taylor > > OS Community Flag-Bearer > > Numenta > > > > On Thu, Feb 11, 2016 at 7:12 AM, Wakan Tanka <[email protected] > > <mailto:[email protected]>> wrote: > > > > One more question: > > Is it possible to somehow save the model "trained" from 1st dataset > > to use it later? > > > > On Wed, Feb 10, 2016 at 11:52 PM, Wakan Tanka <[email protected] > > <mailto:[email protected]>> wrote: > > > > Hello NuPIC, > > > > In hotgym anomaly tutorial Matt changed inferenceType from > > TemporalMultiStep to TemporalAnomaly to being able detect > > anomalies. When he then run script to removed all Tuesdays NuPIC > > adapted to those changes, as it sees more and more of those > > data, started to consider it as a normal and stop reporting it > > as an anomaly. > > > > 1. I do not want NuPIC to adapt to those changes. Is possible to > > disable learning in this phase? I want is to create model using > > 1st dataset, then pass 2nd dataset to this model but further > > learning will be disabled. So far I know how to: create > > model_params by running swarm over 1st dataset and pushing this > > dataset into NuPIC to compute anomaly score. But what I do not > > know is how to "save" those learned patterns from 1st dataset > > and detect anomalies using this "trained" version in 2nd > > dataset. Is this even possible for NuPIC? > > > > 2. The one difference between hot gym prediction and hot gym > > anomaly was changing inferenceType from TemporalMultiStep to > > TemporalAnomaly in existing model params. So I guess that > > inferenceType does not affects swarm process because it can be > > easily turned into something else in existing model if needed? > > Are all available options under inferenceType using the same > > algorithm principles under the hood? > > > > 3. Based on above: when somebody is talking about creating model > > he is basically referring not just tuning (e.g. by hand or > > swarm) parameters inside model_params.py but also in this > > "training" phase? > > > > 4. Where can I find further info regarding inferenceType, the > > only info that I?ve found is this list [1]? Matt in his hot gym > > prediction tutorial said that the data are temporal so he has > > chosen TemporalMultiStep. But how can I know if my data are > > temporal and not e.g. nontemporal? As a nontemporal data can be > > considered e.g. those that guys from cortical.io > > <http://cortical.io> are dealing with? I mean SDRs for > > particular words where time does not plays crucial role? Is the > > role of time completely omitted in cortical.io > > <http://cortical.io> examples? > > > > [1] Inference Types - > > https://github.com/numenta/nupic/wiki/Inference-Types > > > > -- > > Thank you > > > > Best Regards > > > > Wakan > > > > > > > > > > -- > > Best Regards > > > > Name: Wakan Tanka a.k.a. Wakatana a.k.a. MackoP00h > > Location: Europe > > Note: I'm non native English speaker so please bare with me ;) > > Contact: > > [email protected] <mailto:[email protected]> > > http://stackoverflow.com/users/1616488/wakan-tanka > > https://github.com/wakatana > > https://twitter.com/MackoP00h > > > > > > > > > ------------------------------ > > Message: 2 > Date: Sun, 14 Feb 2016 04:02:54 +0100 > From: Wakan Tanka <[email protected]> > To: "NuPIC general mailing list." <[email protected]> > Subject: Using anomalyProbability gives TypeError: cannot perform > reduce with flexible type > Message-ID: <[email protected]> > Content-Type: text/plain; charset=utf-8; format=flowed > > Hello NuPIC, > > I'm trying to incorporate anomaly likelihood in hotgym anomaly tutorial > using modified Subutai example [1]. Here is my code snippet for running > model: > > > for row in csvReader: > # ipdb.set_trace() > col1 = datetime.datetime.strptime(row[0], DATE_FORMAT) # timestamp > col2 = row[1] # > consumption > > result = model.run({ > "timestamp": col1, > "kw_energy_consumption": float(col2) > }) > > shifted_result = shifter.shift(result) > col3 = result.inferences["multiStepBestPredictions"][predictionSteps] > col4 = > shifted_result.inferences["multiStepBestPredictions"][predictionSteps] > col5 = result.inferences['anomalyScore'] > > # Compute the Anomaly Likelihood > likelihood = anomalyLikelihood.anomalyProbability(col2, col5, col1) > logLikelihood = anomalyLikelihood.computeLogLikelihood(likelihood) > > > # write to csv > # datetime;consumption;prediction;shifted_prediction;anomaly_score; > row = [col1, col2, col3, col4, col5, likelihood, logLikelihood] > csvWriter.writerow(row) > > if Verbose: > if (counter % 100 == 0): > print "Line %i has been written to %s" % (counter, outputFile) > print ';'.join(str(v) for v in row) > print > "################################################################" > > if VeryVerbose: > if (counter % 100 == 0): > print "Line %i has been written to %s" % (counter, outputFile) > print result > print > "################################################################" > > counter += 1 > > inputFH.close() > outputFH.close() > > > > > Above codes ends up with "TypeError: cannot perform reduce with flexible > type" > > > > Last three rows that are writtent to output CSV are: > > 2010-07-26 > > 21:00:00,35.8,4.887570520503047,44.76003339041138,0.025000000000000001,0.5,0.0301029996658834 > 2010-07-26 > > 22:00:00,5.1,15.743889021255345,4.887570520503047,0.050000000000000003,0.5,0.0301029996658834 > 2010-07-26 > > 23:00:00,4.9,15.743889021255345,15.743889021255345,0.050000000000000003,0.5,0.0301029996658834 > > > Input csv is same as in hotgym anomaly tuorial. Here is snipet around > the location where error occurres > > 7/26/10 21:00,35.8 > 7/26/10 22:00,5.1 > 7/26/10 23:00,4.9 > 7/27/10 0:00,21.6 > 7/27/10 1:00,15.6 > 7/27/10 2:00,4.8 > > Values causing error passed to anomalyLikelihood.anomalyProbability > (founded via debugger): > > ipdb> col2 > '21.6' > ipdb> col5 > 0.0 > ipdb> col1 > datetime.datetime(2010, 7, 27, 0, 0) > > > > PS: As you can see I am using both shifted and unshifted inferences > (col3 and col4). Should I pass anomalyScore from (un)shifted to > anomalyProbability? > > PPS: I've not found any anomalyProbability() specification so I'm > passing arguments as I've seen in Matt or Subutai codes, is this OK? > > Thank you > > [1] > > https://github.com/subutai/nupic.subutai/blob/master/run_anomaly/run_anomaly.py > > > > ------------------------------ > > Message: 3 > Date: Sun, 14 Feb 2016 13:54:18 +0100 > From: Wakan Tanka <[email protected]> > To: "NuPIC general mailing list." <[email protected]> > Subject: Re: Using NuPIC to monitor Apache server Response Times > Message-ID: <[email protected]> > Content-Type: text/plain; charset=utf-8; format=flowed > > Hello Matt, > > if there are there some limits for model, how can I know if I'm pushing > too much into model, is there some further materials about this topic? > Also when you have multiple models then how you can combine them to > something useful? Correct me if I'm wrong but I guess that this was > discussed by Scott Purdy in Science of anomaly detection video. He've > explained that grok uses multiple models for memory, cpu, io etc. which > are separated (model for io does not sees cpu data and vice versa). > Basically when you want detect something unusual then you're searching > for anomalies from those separated models and check if they are > reporting anomaly at the same time. Am I wrong? > > Thank you very much > > > On 02/12/2016 05:53 PM, Matthew Taylor wrote: > > Daniel, > > > > The first thing that strikes me about your description is that you're > > only creating one model for all the data. Is there a way to split the > > data up, perhaps by URL? If there are too many URLs to create models for > > each one, try to identify another way to logically sort this input data > > into categories with patterns that a human could understand and analyze. > > I think the main problem is that you're pushing too much data into one > > model. If you can figure out a way to split it into multiple models > > you'll probably be more successful. > > > > Let me know what you think. > > > > Regards, > > > > --------- > > Matt Taylor > > OS Community Flag-Bearer > > Numenta > > > > > ------------------------------ > > Message: 4 > Date: Sun, 14 Feb 2016 14:36:39 +0100 > From: Wakan Tanka <[email protected]> > To: "NuPIC general mailing list." <[email protected]> > Subject: Re: Using anomalyProbability gives TypeError: cannot perform > reduce with flexible type > Message-ID: <[email protected]> > Content-Type: text/plain; charset=utf-8; format=flowed > > Here is full trace: > > --------------------------------------------------------------------------- > TypeError Traceback (most recent call last) > /home/wakatana/experiments_today/v3/run_nupic.py in <module>() > 239 SWARM_CFG["PREDICTION_STEP"], > # PREDICTION STEP > 240 Verbose=True, > # VERBOSE > --> 241 VeryVerbose=False > # VERY VERBOSE > 242 ) > 243 RUNMODEL_STOP_TIME = SCRIPT_STOP_TIME = > calendar.timegm(time.gmtime()) > > > /home/wakatana/experiments_today/v3/experiments/hot_gym_anomaly/run_model/run_model.py > in runModel(model, inputFile, outputFile, predictionSteps, Verbose, > VeryVerbose) > 67 > 68 # Compute the Anomaly Likelihood > ---> 69 likelihood = anomalyLikelihood.anomalyProbability(col2, > tmp, col1) > 70 logLikelihood = > anomalyLikelihood.computeLogLikelihood(likelihood) > 71 > > > /home/wakatana/.local/lib/python2.7/site-packages/nupic-0.3.0.dev0-py2.7-linux-x86_64.egg/nupic/algorithms/anomaly_likelihood.pyc > in anomalyProbability(self, value, anomalyScore, timestamp) > 140 estimateAnomalyLikelihoods( > 141 self._historicalScores, > --> 142 skipRecords = self._claLearningPeriod) > 143 ) > 144 > > > /home/wakatana/.local/lib/python2.7/site-packages/nupic-0.3.0.dev0-py2.7-linux-x86_64.egg/nupic/algorithms/anomaly_likelihood.pyc > in estimateAnomalyLikelihoods(anomalyScores, averagingWindow, > skipRecords, verbosity) > 297 metricValues = numpy.array(s) > 298 metricDistribution = > estimateNormal(metricValues[skipRecords:], > --> 299 > performLowerBoundCheck=False) > 300 > 301 if metricDistribution["variance"] < 1.5e-5: > > > /home/wakatana/.local/lib/python2.7/site-packages/nupic-0.3.0.dev0-py2.7-linux-x86_64.egg/nupic/algorithms/anomaly_likelihood.pyc > in estimateNormal(sampleData, performLowerBoundCheck) > 511 params = { > 512 "name": "normal", > --> 513 "mean": numpy.mean(sampleData), > 514 "variance": numpy.var(sampleData), > 515 } > > /usr/lib/python2.7/dist-packages/numpy/core/fromnumeric.pyc in mean(a, > axis, dtype, out, keepdims) > 2714 > 2715 return _methods._mean(a, axis=axis, dtype=dtype, > -> 2716 out=out, keepdims=keepdims) > 2717 > 2718 def std(a, axis=None, dtype=None, out=None, ddof=0, > keepdims=False): > > /usr/lib/python2.7/dist-packages/numpy/core/_methods.pyc in _mean(a, > axis, dtype, out, keepdims) > 60 dtype = mu.dtype('f8') > 61 > ---> 62 ret = um.add.reduce(arr, axis=axis, dtype=dtype, out=out, > keepdims=keepdims) > 63 if isinstance(ret, mu.ndarray): > 64 ret = um.true_divide( > > TypeError: cannot perform reduce with flexible type > > > > > ------------------------------ > > Subject: Digest Footer > > _______________________________________________ > nupic mailing list > [email protected] > http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org > > > ------------------------------ > > End of nupic Digest, Vol 34, Issue 13 > ************************************* > -- eric green CTO Π ∩ ϟ piandpower.com
