Yes. I was able to do it. [1] now points to the reformatted code. I hope I followed the conventions properly.
[1] https://github.com/lonesword/nupichelloworld/blob/master/helloworld.py On Tue, Feb 25, 2014 at 8:13 PM, Matthew Taylor <[email protected]> wrote: > Kevin, most text editors allow an option to automatically insert 2 or > 4 spaces when you press the tab key. Look through the settings of your > text editor or IDE. > --------- > Matt Taylor > OS Community Flag-Bearer > Numenta > > > On Mon, Feb 24, 2014 at 7:51 PM, Kevin Martin > <[email protected]> wrote: > > I saw a similar guide for C but not for python, so I just assumed that it > > didn't exist. Thanks for pointing this out. I want a clarification about > the > > indentation. I'm so used to using tab to indent in python. I wonder if > its > > ok if I keep using tabs instead of the specified 2 spaces. > > > > > > On Tue, Feb 25, 2014 at 4:52 AM, Matthew Taylor <[email protected]> > wrote: > >> > >> Hey Kevin, > >> > >> Thanks so much for taking this task on. I like the direction this > >> tutorial is going. Once complete, we should be able to create a nice > >> reference document to describe it. You should take a look at our > >> python coding conventions[1], as we'll need to make sure all code > >> within nupic adheres to the same standard. I'd eventually like to get > >> your tutorial into the nupic repo, so reviewing the python style guide > >> and running pylint now will probably save you some trouble later. :) > >> > >> > >> [1] https://github.com/numenta/nupic/wiki/Python-Style-Guide > >> --------- > >> Matt Taylor > >> OS Community Flag-Bearer > >> Numenta > >> > >> > >> On Mon, Feb 24, 2014 at 2:35 PM, Subutai Ahmad <[email protected]> > >> wrote: > >> > > >> > It is great to see this taking shape. I've left comments in the issue > >> > that > >> > is tracking this work: > >> > > >> > https://github.com/numenta/nupic/issues/654 > >> > > >> > Note that we are actually in the process of removing FlatSpatialPooler > >> > (see > >> > https://github.com/numenta/nupic/issues/627). The high tier stuff > was a > >> > hack > >> > for tiny datasets, and we don't seem to need it anymore. > >> > > >> > --Subutai > >> > > >> > > >> > On Mon, Feb 24, 2014 at 11:05 AM, Scott Purdy <[email protected]> > wrote: > >> >> > >> >> Thanks for raising these issues. I understand how that could be > >> >> confusing > >> >> and part of it is why we have separated the FlatSpatialPooler from > the > >> >> more > >> >> general SpatialPooler class. > >> >> > >> >> Hopefully Subutai can chime in since he understands high tier much > >> >> better > >> >> than me but here are my suspicions for the behavior: > >> >> > >> >> 1. The FlatSpatialPooler implementation includes high tier which > causes > >> >> it > >> >> to try to memorize the initial patterns it sees. It will try to > >> >> uniquely > >> >> represent the initial patterns. Since the first set of columns hasn't > >> >> had > >> >> time to adjust to connect to all of the active bits in its potential > >> >> pool, > >> >> there is an opportunity for other columns with high initial boost > (part > >> >> of > >> >> high tier) to win instead. This is my suspicion but not 100% sure. > >> >> > >> >> High tier solves some problems but causes others. When we were > >> >> designing > >> >> the new SP implementations we had an explicit goal of separating it > >> >> from the > >> >> general SpatialPooler class. > >> >> > >> >> 2. The FlatSpatialPooler has an optimized path for no topology. This > >> >> could > >> >> result in a noticeable difference in speed, even when you specify no > >> >> topology in the SpatialPooler. We could have included the > optimization > >> >> in > >> >> the regular SpatialPooler class but decided that special-casing made > >> >> more > >> >> sense in a subclass. We wanted to keep the code really simple and > clean > >> >> in > >> >> the generic version. > >> >> > >> >> > >> >> On Sun, Feb 23, 2014 at 11:28 PM, Kevin Martin > >> >> <[email protected]> wrote: > >> >>> > >> >>> Tinkering a bit, I came to notice that if I used the SpatialPooler > >> >>> class > >> >>> instead of FlatSpatialPooler, I get the same set of active columns > for > >> >>> the > >> >>> same input. But it takes much longer to get the results and the > 'busy' > >> >>> light > >> >>> of my computer stays on for a really long time. From what I read, I > >> >>> had > >> >>> assumed that the only real difference between the normal spatial > >> >>> pooler and > >> >>> the flat spatial pooler was the lack of topology. But since both of > >> >>> them > >> >>> returned different results I think FSP is minimalistic in much more > >> >>> ways > >> >>> (the SP returns the expected result, while the FSP returns a new > >> >>> result for > >> >>> the same input vector which was not what I had expected). But I'd > >> >>> still like > >> >>> to know why the Flat SP returned different set of active columns for > >> >>> the > >> >>> same input. > >> >>> > >> >>> On Sun, Feb 23, 2014 at 11:19 AM, Kevin Martin > >> >>> <[email protected]> wrote: > >> >>>> > >> >>>> I'm on my way to writing a 'hello world' equivalent for nupic. I > >> >>>> decided > >> >>>> to work with a flat spatial pooler since it has no topology. I was > >> >>>> able to > >> >>>> send in an input vector and get the list of active columns. The > >> >>>> source code > >> >>>> is hosted here : > >> >>>> > >> >>>> > >> >>>> > https://github.com/lonesword/nupichelloworld/blob/master/helloworld.py > >> >>>> > >> >>>> I was under the assumption that similar inputs to the spatial > pooler > >> >>>> results in similar SDRs. That is, if I give the same input twice, > it > >> >>>> is > >> >>>> expected to produce the same SDRs. > >> >>>> > >> >>>> However, sending the same input vector to the compute() function > >> >>>> returns > >> >>>> a different set of active columns every time. I'm pasting the code > >> >>>> snippet > >> >>>> here : > >> >>>> > >> >>>> for i in range(10): > >> >>>> example.flat.compute(testinput,True,active) > >> >>>> for i in range(4096): > >> >>>> if active[i]!=0: > >> >>>> print i, > >> >>>> print " " > >> >>>> active[0:]=0 > >> >>>> > >> >>>> flat is an object of FlatSpatialPooler, > >> >>>> testinput is the input array, > >> >>>> active is the active list of columns. > >> >>>> > >> >>>> I got a different set of active columns for each iteration. Why is > >> >>>> this > >> >>>> so? I'm feeding the pooler the same input vector each time. > >> >>> > >> >>> > >> >>> > >> >>> _______________________________________________ > >> >>> 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
