OK thanks I will try that. I currently haven't created a fork, just cloned the repo directly. But I can create a fork and then make a PR.
Unfortunately I am currently having trouble installing the latest NuPIC because I have 32 bit Linux and NuPIC no longer supports this officially. My computer is actually 64 bit so I might reinstall Ubuntu 64-bit before trying to do anything further with git. But please feel free to add the file yourself in the meantime of course. John. On Thu, Jul 16, 2015 at 6:37 PM, Matthew Taylor <[email protected]> wrote: > John, why don't you create a pull request? You can put your file at > "examples/tm/hello_tm.py". > --------- > Matt Taylor > OS Community Flag-Bearer > Numenta > > > On Thu, Jul 16, 2015 at 10:29 AM, John Blackburn > <[email protected]> wrote: >> Dear All >> >> I've now prepared a basic temporal memory example based on the >> "hello_tp.py" test for the Temporal Pooler. it does the same thing, >> learns the ABCDE sequence and outputs in a similar format. I think >> this example might be useful for beginners so feel free to add it to >> the repo if you like. >> >> The TM is able to learn the sequence perfectly, like TP did. However, >> the choice of which cell to activate in each column seems to be random >> now, whereas with TP it was always the bottom cell in each column. >> Also, the TM is "surprised" by the first input with all cells active >> in each activated column. >> >> In the next step I'll try to make it lean a simple sinusoid sequence. >> >> John. >> >> On Wed, Jul 15, 2015 at 9:40 AM, John Blackburn >> <[email protected]> wrote: >>> Thanks very much, Matthew. This will help many people. >>> >>> John >>> >>> On Tue, Jul 14, 2015 at 5:35 PM, Matthew Taylor <[email protected]> wrote: >>>> Fixed! http://numenta.org/docs/nupic/ >>>> --------- >>>> Matt Taylor >>>> OS Community Flag-Bearer >>>> Numenta >>>> >>>> >>>> On Tue, Jul 14, 2015 at 9:23 AM, John Blackburn >>>> <[email protected]> wrote: >>>>> Looks like it might be time to run doxygen again! Last run in May 19. >>>>> >>>>> John. >>>>> >>>>> On Tue, Jul 14, 2015 at 5:14 PM, cogmission (David Ray) >>>>> <[email protected]> wrote: >>>>>> Hey John, >>>>>> >>>>>> Nice self-sufficient researching! I like that in ya' !!! >>>>>> >>>>>> Anyway, yes that last (stripNeverLearned) parameter was recently removed >>>>>> last month. The file I gave you is older than that... >>>>>> >>>>>> Remember, NuPIC is ever evolving, and it is still technically >>>>>> "pre-release"! >>>>>> >>>>>> ;-) >>>>>> >>>>>> >>>>>> >>>>>> On Tue, Jul 14, 2015 at 11:09 AM, John Blackburn >>>>>> <[email protected]> wrote: >>>>>>> >>>>>>> Thanks, Ralf, >>>>>>> >>>>>>> Actually that reminds me, David Ray kindly sent me the QuickTest.py >>>>>>> example in Python so I just tried that. However, I ran into another >>>>>>> problem: there seems to be some confusion about how many parameters >>>>>>> sp.compute() takes (Spatial Pooler). In QuickTest.py the code reads >>>>>>> >>>>>>> sp.compute(encoding, True, output, False) >>>>>>> >>>>>>> However, on Github sp.compute takes only 3 parameters (apart from self): >>>>>>> >>>>>>> >>>>>>> https://github.com/numenta/nupic/blob/master/nupic/research/spatial_pooler.py#L658 >>>>>>> >>>>>>> So this causes a crash. I notice on the API docs the 4th parameter is >>>>>>> indeed mentioned: >>>>>>> >>>>>>> >>>>>>> http://numenta.org/docs/nupic/classnupic_1_1research_1_1spatial__pooler_1_1_spatial_pooler.html#aaa2084b96999fb1734fd2f330bfa01a6 >>>>>>> >>>>>>> So I guess the 4th arg was recently removed. Pretty confusing! >>>>>>> >>>>>>> Can anyone shed light on this mystery? >>>>>>> >>>>>>> John. >>>>>>> >>>>>>> On Tue, Jul 14, 2015 at 12:25 PM, Ralf Seliger <[email protected]> wrote: >>>>>>> > Hey John, >>>>>>> > >>>>>>> > why don't you try the QuickTest example in htm.java >>>>>>> > (https://github.com/numenta/htm.java) or htm.JavaScript >>>>>>> > (https://github.com/nupic-community/htm.JavaScript)? It involves the >>>>>>> > new >>>>>>> > temporal memory, and stepping through the code with a debugger you can >>>>>>> > easily study the inner workings of th algorithm. >>>>>>> > >>>>>>> > Regards, RS >>>>>>> > >>>>>>> > >>>>>>> > Am 14.07.2015 um 11:39 schrieb John Blackburn: >>>>>>> >> >>>>>>> >> Thanks, Chetan, >>>>>>> >> >>>>>>> >> Any tutorials, examples of how to use temporal_memory.py? The nice >>>>>>> >> thing about old TP is it has an example: hello_tp.py. >>>>>>> >> >>>>>>> >> John. >>>>>>> >> >>>>>>> >> On Mon, Jul 13, 2015 at 7:55 PM, Chetan Surpur <[email protected]> >>>>>>> >> wrote: >>>>>>> >>> >>>>>>> >>> Hi John, >>>>>>> >>> >>>>>>> >>> The TP is now called "Temporal Memory", and there's a new >>>>>>> >>> implementation >>>>>>> >>> of >>>>>>> >>> it in NuPIC [1]. Please use this latest version instead, and let us >>>>>>> >>> know >>>>>>> >>> if >>>>>>> >>> you still find issues with the results. >>>>>>> >>> >>>>>>> >>> [1] >>>>>>> >>> >>>>>>> >>> >>>>>>> >>> https://github.com/numenta/nupic/blob/master/nupic/research/temporal_memory.py >>>>>>> >>> >>>>>>> >>> Thanks, >>>>>>> >>> Chetan >>>>>>> >>> >>>>>>> >>> On Jul 13, 2015, at 4:44 AM, John Blackburn >>>>>>> >>> <[email protected]> >>>>>>> >>> wrote: >>>>>>> >>> >>>>>>> >>> Dear All >>>>>>> >>> >>>>>>> >>> I'm trying to use the temporal pooler (TP) directly as I want to get >>>>>>> >>> into the details of how Nupic works (rather than high level OPF etc) >>>>>>> >>> >>>>>>> >>> Having trained the TP I used this code to get some predictions: >>>>>>> >>> >>>>>>> >>> for j in range(10): >>>>>>> >>> x=2*math.pi/100*j >>>>>>> >>> y=math.sin(x) >>>>>>> >>> >>>>>>> >>> print "Time step:",j >>>>>>> >>> >>>>>>> >>> for k in range(nIntervals): >>>>>>> >>> if y>=ybot[k] and y<ytop[k]: >>>>>>> >>> print "input=",x,y,k,rep[k,:] >>>>>>> >>> >>>>>>> >>> tp.compute(rep[k,:],enableLearn=False,computeInfOutput=True) >>>>>>> >>> tp.printStates(printPrevious = False, printLearnState = >>>>>>> >>> False) >>>>>>> >>> break >>>>>>> >>> >>>>>>> >>> >>>>>>> >>> Here is the result I got: >>>>>>> >>> >>>>>>> >>> Time step: 0 >>>>>>> >>> input= 0.0 0.0 9 [0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0] >>>>>>> >>> >>>>>>> >>> Inference Active state >>>>>>> >>> 0000000001 0000000000 >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> Inference Predicted state >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> 0000000001 0000000000 >>>>>>> >>> Time step: 1 >>>>>>> >>> input= 0.0628318530718 0.0627905195293 10 [0 0 0 0 0 0 0 0 0 0 1 0 >>>>>>> >>> 0 0 >>>>>>> >>> 0 0 0 0 0 0] >>>>>>> >>> >>>>>>> >>> Inference Active state >>>>>>> >>> 0000000000 1000000000 >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> Inference Predicted state >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> 0000000001 0000000000 >>>>>>> >>> Time step: 2 >>>>>>> >>> input= 0.125663706144 0.125333233564 11 [0 0 0 0 0 0 0 0 0 0 0 1 0 >>>>>>> >>> 0 0 >>>>>>> >>> 0 0 0 0 0] >>>>>>> >>> >>>>>>> >>> Inference Active state >>>>>>> >>> 0000000000 0100000000 >>>>>>> >>> 0000000000 0100000000 >>>>>>> >>> Inference Predicted state >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> 0000000000 1110000000 >>>>>>> >>> Time step: 3 >>>>>>> >>> input= 0.188495559215 0.187381314586 11 [0 0 0 0 0 0 0 0 0 0 0 1 0 >>>>>>> >>> 0 0 >>>>>>> >>> 0 0 0 0 0] >>>>>>> >>> >>>>>>> >>> Inference Active state >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> 0000000000 0100000000 >>>>>>> >>> Inference Predicted state >>>>>>> >>> 0000000000 0000000000 >>>>>>> >>> 0000000000 1110000000 >>>>>>> >>> >>>>>>> >>> You can see that in time step 3, one cell (12th column) is shown as >>>>>>> >>> being both in the active and predictive state, which I though was >>>>>>> >>> impossible. (its inference active state is 1 and its inference >>>>>>> >>> predicated state is 1) >>>>>>> >>> >>>>>>> >>> Also if you look at time step 0, only 1 cell is in the predictive >>>>>>> >>> state. However, the input that comes in at time step 1 activates the >>>>>>> >>> colum to the right of this cell (the 11th slot is "1") so I would >>>>>>> >>> expect the 11th column to have both cells active, the "unexpected >>>>>>> >>> input state" but this does not happen. >>>>>>> >>> >>>>>>> >>> Can anyone explain this? >>>>>>> >>> >>>>>>> >>> John. >>>>>>> >>> >>>>>>> >>> >>>>>>> > >>>>>>> > >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> With kind regards, >>>>>> >>>>>> David Ray >>>>>> Java Solutions Architect >>>>>> >>>>>> Cortical.io >>>>>> Sponsor of: HTM.java >>>>>> >>>>>> [email protected] >>>>>> http://cortical.io >>>>> >>>> >
