Comments (5)
@subutai When you say "bug fix", what bug are you referring to?
from htmresearch.
Sorry I left out the actual bug fix in that snippet! I think the previous version of the code did not go through self.getBestMatchingSegment if self.learnOnOneCell is True and after the learn cell was chosen. If you chose the previously learning cell, you should try to find the best matching segment otherwise you will always create a new one.
The code snippet is:
if self.learnOnOneCell == True:
# in learn on one cell mode, always learn on one cell per column
# unless reset has just been called
i = self.getSeqLearnCell(c)
if not i:
i,s = self.getBestMatchingCell(c,self.activeState['t-1'],
self.distalDendriticInput['t-1'])
if s is not None and s.isSequenceSegment():
s.totalActivations += 1 # activationFrequency
s.lastActiveIteration = self.iterationIdx
else:
# if best matching cell does not exist, then get least used cell
i = self.getLeastUsedCell(c)
else:
# If we get back i, then we should find its best matching segment
# if it exists
s = self.getBestMatchingSegment(c, i, self.activeState['t-1'],
self.distalDendriticInput['t-1'])
from htmresearch.
@subutai If this bug exists, the temporal memory won't learn and predict anything, right? I tested this, by introducing the bug into learn_on_one_cell_temporal_memory.py
, and all the existing tests failed, because nothing was ever predicted. Do we need to explicitly test for this case, or are the existing tests enough?
(This is assuming that connectedPermanence > initialPermanence
in the tests.)
from htmresearch.
Hmm, I see. All the old scripts used to pass without this change. This fix is needed only when you do slow learning. If our tests all use slow learning now, I guess it is fine to not make any additional tests.
from htmresearch.
Then maybe we can think of it as, "a good way to test this fix is to have a test for slow learning"? After all, that is the functional effect of this fix. As long as we have that, we're good.
from htmresearch.
Related Issues (20)
- SP adaptSynapses: Experiment with discouraging shared inputs
- Experiment with topology support in the TM
- Python ETM: When learning is disabled, a bunch of empty segments are grown
- Python ETM: Apical segments are grown in bursting columns even when there's no apical input
- Python ETM: Apical segments on predicted cells are reused even if they're not matching
- Update the Python ETM to use the new "walk the columns" strategy HOT 3
- Remove phases implementation of temporal memory HOT 2
- Convert sequence_learning to new TM HOT 4
- Remove _phases files
- Port bug fixes in temporal_memory_phases to new temporal_memory HOT 1
- Make sequence learning script easily replicate results
- ETM suggestion: Use apical segments when determining the learning cell HOT 1
- Proposal: Replace 'maxNewSynapseCount' with 'subsampleSize' HOT 3
- syntax error: missing comma in 'frameworks/sensorimotor/sensorimotor_experiment_runnner.py'
- ImportError: No module named research.connections with virtualenv HOT 9
- maybe a bug in ColumnPooler.py? HOT 1
- column_cooler.py HOT 2
- how can I test lstm model on data extracted by sensor kinect (3d skelton) HOT 1
- Unionpooler only for predictedActiveCells
- Python.exe crashes when using large UnionTemporalPooler HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from htmresearch.