{"action":"opened","number":1105,"pull_request":{"url":"https://api.github.com/repos/numenta/nupic.core/pulls/1105","id":86567667,"html_url":"https://github.com/numenta/nupic.core/pull/1105","diff_url":"https://github.com/numenta/nupic.core/pull/1105.diff","patch_url":"https://github.com/numenta/nupic.core/pull/1105.patch","issue_url":"https://api.github.com/repos/numenta/nupic.core/issues/1105","number":1105,"state":"open","locked":false,"title":"ETM: Split external active cells from winner cells. Check inputs.","user":{"login":"mrcslws","id":364113,"avatar_url":"https://avatars.githubusercontent.com/u/364113?v=3","gravatar_id":"","url":"https://api.github.com/users/mrcslws","html_url":"https://github.com/mrcslws","followers_url":"https://api.github.com/users/mrcslws/followers","following_url":"https://api.github.com/users/mrcslws/following{/other_user}","gists_url":"https://api.github.com/users/mrcslws/gists{/gist_id}","starred_url":"https://api.github.com/users/mrcslws/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrcslws/subscriptions","organizations_url":"https://api.github.com/users/mrcslws/orgs","repos_url":"https://api.github.com/users/mrcslws/repos","events_url":"https://api.github.com/users/mrcslws/events{/privacy}","received_events_url":"https://api.github.com/users/mrcslws/received_events","type":"User","site_admin":false},"body":"This change adds 3 parameters to the ETM:\r\n- \"checkInputs\" - Tell the ETM to perform a bunch of slow checks on the input. We'll usually have this turned on.\r\n- \"basalInputDimensions\" - Used for input checking, for visualizations, and maybe for future use in the ETM. (Up until now we've had to design around not knowing this)\r\n- \"apicalInputDimensions\" - Same as above\r\n\r\nSecond, this change stops assuming that the \"active external cells\" are also \"winner cells\". They are now passed in as \"reinforce candidates\" and \"growth candidates\". So now we'll be able to respond appropriately to external bursting columns, only growing synapses to the winner cells.\r\n\r\nThird, this change embraces this terminology. It never describes external inputs as \"prev active\" or \"prev winner\". Instead it calls them \"reinforce candidate\" and \"growth candidate\". I think this is a good change for 3 reasons:\r\n\r\n1. This naming makes it clear why these parameters being passed in and how they'll be used.\r\n2. It makes the API less normative -- maybe the cells are currently active (no time delay), or maybe they're only partly active, or maybe we only want to reinforce connections to external winner cells.\r\n3. The synapse/segment learning code is now oblivious to time. `learnOnCell` and everything beneath it could be reused in non-temporal learning, e.g. a spatial pooler or L2's proximal input. Maybe soon we'll find a reason to move this code out of the ETM and into some reusable place.\r\n\r\nFourth, this changes the name \"activateDendrites\" to \"depolarizeCells\". This makes the public API more intuitive. \"activateCells\" changes the active cells, while \"depolarizeCells\" changes the predictive cells.\r\n\r\nFinally, this change makes the Python -> C++ leap more efficient. We assume the input is sorted, and we use the numpy array that the input is already in. If it's not in a numpy array, we copy it into one.","created_at":"2016-09-23T19:26:21Z","updated_at":"2016-09-23T19:26:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/numenta/nupic.core/pulls/1105/commits","review_comments_url":"https://api.github.com/repos/numenta/nupic.core/pulls/1105/comments","review_comment_url":"https://api.github.com/repos/numenta/nupic.core/pulls/comments{/number}","comments_url":"https://api.github.com/repos/numenta/nupic.core/issues/1105/comments","statuses_url":"https://api.github.com/repos/numenta/nupic.core/statuses/4e387b68d9b05f88acc22962ebba9863e80c1fe6","head":{"label":"mrcslws:depolarize-cells","ref":"depolarize-cells","sha":"4e387b68d9b05f88acc22962ebba9863e80c1fe6","user":{"login":"mrcslws","id":364113,"avatar_url":"https://avatars.githubusercontent.com/u/364113?v=3","gravatar_id":"","url":"https://api.github.com/users/mrcslws","html_url":"https://github.com/mrcslws","followers_url":"https://api.github.com/users/mrcslws/followers","following_url":"https://api.github.com/users/mrcslws/following{/other_user}","gists_url":"https://api.github.com/users/mrcslws/gists{/gist_id}","starred_url":"https://api.github.com/users/mrcslws/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrcslws/subscriptions","organizations_url":"https://api.github.com/users/mrcslws/orgs","repos_url":"https://api.github.com/users/mrcslws/repos","events_url":"https://api.github.com/users/mrcslws/events{/privacy}","received_events_url":"https://api.github.com/users/mrcslws/received_events","type":"User","site_admin":false},"repo":{"id":51950553,"name":"nupic.core","full_name":"mrcslws/nupic.core","owner":{"login":"mrcslws","id":364113,"avatar_url":"https://avatars.githubusercontent.com/u/364113?v=3","gravatar_id":"","url":"https://api.github.com/users/mrcslws","html_url":"https://github.com/mrcslws","followers_url":"https://api.github.com/users/mrcslws/followers","following_url":"https://api.github.com/users/mrcslws/following{/other_user}","gists_url":"https://api.github.com/users/mrcslws/gists{/gist_id}","starred_url":"https://api.github.com/users/mrcslws/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mrcslws/subscriptions","organizations_url":"https://api.github.com/users/mrcslws/orgs","repos_url":"https://api.github.com/users/mrcslws/repos","events_url":"https://api.github.com/users/mrcslws/events{/privacy}","received_events_url":"https://api.github.com/users/mrcslws/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mrcslws/nupic.core","description":"Implementation of core NuPIC algorithms in C++ (under construction)","fork":true,"url":"https://api.github.com/repos/mrcslws/nupic.core","forks_url":"https://api.github.com/repos/mrcslws/nupic.core/forks","keys_url":"https://api.github.com/repos/mrcslws/nupic.core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mrcslws/nupic.core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mrcslws/nupic.core/teams","hooks_url":"https://api.github.com/repos/mrcslws/nupic.core/hooks","issue_events_url":"https://api.github.com/repos/mrcslws/nupic.core/issues/events{/number}","events_url":"https://api.github.com/repos/mrcslws/nupic.core/events","assignees_url":"https://api.github.com/repos/mrcslws/nupic.core/assignees{/user}","branches_url":"https://api.github.com/repos/mrcslws/nupic.core/branches{/branch}","tags_url":"https://api.github.com/repos/mrcslws/nupic.core/tags","blobs_url":"https://api.github.com/repos/mrcslws/nupic.core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mrcslws/nupic.core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mrcslws/nupic.core/git/refs{/sha}","trees_url":"https://api.github.com/repos/mrcslws/nupic.core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mrcslws/nupic.core/statuses/{sha}","languages_url":"https://api.github.com/repos/mrcslws/nupic.core/languages","stargazers_url":"https://api.github.com/repos/mrcslws/nupic.core/stargazers","contributors_url":"https://api.github.com/repos/mrcslws/nupic.core/contributors","subscribers_url":"https://api.github.com/repos/mrcslws/nupic.core/subscribers","subscription_url":"https://api.github.com/repos/mrcslws/nupic.core/subscription","commits_url":"https://api.github.com/repos/mrcslws/nupic.core/commits{/sha}","git_commits_url":"https://api.github.com/repos/mrcslws/nupic.core/git/commits{/sha}","comments_url":"https://api.github.com/repos/mrcslws/nupic.core/comments{/number}","issue_comment_url":"https://api.github.com/repos/mrcslws/nupic.core/issues/comments{/number}","contents_url":"https://api.github.com/repos/mrcslws/nupic.core/contents/{+path}","compare_url":"https://api.github.com/repos/mrcslws/nupic.core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mrcslws/nupic.core/merges","archive_url":"https://api.github.com/repos/mrcslws/nupic.core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mrcslws/nupic.core/downloads","issues_url":"https://api.github.com/repos/mrcslws/nupic.core/issues{/number}","pulls_url":"https://api.github.com/repos/mrcslws/nupic.core/pulls{/number}","milestones_url":"https://api.github.com/repos/mrcslws/nupic.core/milestones{/number}","notifications_url":"https://api.github.com/repos/mrcslws/nupic.core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mrcslws/nupic.core/labels{/name}","releases_url":"https://api.github.com/repos/mrcslws/nupic.core/releases{/id}","deployments_url":"https://api.github.com/repos/mrcslws/nupic.core/deployments","created_at":"2016-02-17T19:50:37Z","updated_at":"2016-02-17T19:50:39Z","pushed_at":"2016-09-23T19:22:13Z","git_url":"git://github.com/mrcslws/nupic.core.git","ssh_url":"git@github.com:mrcslws/nupic.core.git","clone_url":"https://github.com/mrcslws/nupic.core.git","svn_url":"https://github.com/mrcslws/nupic.core","homepage":"http://numenta.org","size":182123,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"numenta:master","ref":"master","sha":"3e15ab25f7f5f214a7439de3de7417ebebdb309a","user":{"login":"numenta","id":1039191,"avatar_url":"https://avatars.githubusercontent.com/u/1039191?v=3","gravatar_id":"","url":"https://api.github.com/users/numenta","html_url":"https://github.com/numenta","followers_url":"https://api.github.com/users/numenta/followers","following_url":"https://api.github.com/users/numenta/following{/other_user}","gists_url":"https://api.github.com/users/numenta/gists{/gist_id}","starred_url":"https://api.github.com/users/numenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/numenta/subscriptions","organizations_url":"https://api.github.com/users/numenta/orgs","repos_url":"https://api.github.com/users/numenta/repos","events_url":"https://api.github.com/users/numenta/events{/privacy}","received_events_url":"https://api.github.com/users/numenta/received_events","type":"Organization","site_admin":false},"repo":{"id":16366081,"name":"nupic.core","full_name":"numenta/nupic.core","owner":{"login":"numenta","id":1039191,"avatar_url":"https://avatars.githubusercontent.com/u/1039191?v=3","gravatar_id":"","url":"https://api.github.com/users/numenta","html_url":"https://github.com/numenta","followers_url":"https://api.github.com/users/numenta/followers","following_url":"https://api.github.com/users/numenta/following{/other_user}","gists_url":"https://api.github.com/users/numenta/gists{/gist_id}","starred_url":"https://api.github.com/users/numenta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/numenta/subscriptions","organizations_url":"https://api.github.com/users/numenta/orgs","repos_url":"https://api.github.com/users/numenta/repos","events_url":"https://api.github.com/users/numenta/events{/privacy}","received_events_url":"https://api.github.com/users/numenta/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/numenta/nupic.core","description":"Implementation of core NuPIC algorithms in C++ (under construction)","fork":false,"url":"https://api.github.com/repos/numenta/nupic.core","forks_url":"https://api.github.com/repos/numenta/nupic.core/forks","keys_url":"https://api.github.com/repos/numenta/nupic.core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/numenta/nupic.core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/numenta/nupic.core/teams","hooks_url":"https://api.github.com/repos/numenta/nupic.core/hooks","issue_events_url":"https://api.github.com/repos/numenta/nupic.core/issues/events{/number}","events_url":"https://api.github.com/repos/numenta/nupic.core/events","assignees_url":"https://api.github.com/repos/numenta/nupic.core/assignees{/user}","branches_url":"https://api.github.com/repos/numenta/nupic.core/branches{/branch}","tags_url":"https://api.github.com/repos/numenta/nupic.core/tags","blobs_url":"https://api.github.com/repos/numenta/nupic.core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/numenta/nupic.core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/numenta/nupic.core/git/refs{/sha}","trees_url":"https://api.github.com/repos/numenta/nupic.core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/numenta/nupic.core/statuses/{sha}","languages_url":"https://api.github.com/repos/numenta/nupic.core/languages","stargazers_url":"https://api.github.com/repos/numenta/nupic.core/stargazers","contributors_url":"https://api.github.com/repos/numenta/nupic.core/contributors","subscribers_url":"https://api.github.com/repos/numenta/nupic.core/subscribers","subscription_url":"https://api.github.com/repos/numenta/nupic.core/subscription","commits_url":"https://api.github.com/repos/numenta/nupic.core/commits{/sha}","git_commits_url":"https://api.github.com/repos/numenta/nupic.core/git/commits{/sha}","comments_url":"https://api.github.com/repos/numenta/nupic.core/comments{/number}","issue_comment_url":"https://api.github.com/repos/numenta/nupic.core/issues/comments{/number}","contents_url":"https://api.github.com/repos/numenta/nupic.core/contents/{+path}","compare_url":"https://api.github.com/repos/numenta/nupic.core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/numenta/nupic.core/merges","archive_url":"https://api.github.com/repos/numenta/nupic.core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/numenta/nupic.core/downloads","issues_url":"https://api.github.com/repos/numenta/nupic.core/issues{/number}","pulls_url":"https://api.github.com/repos/numenta/nupic.core/pulls{/number}","milestones_url":"https://api.github.com/repos/numenta/nupic.core/milestones{/number}","notifications_url":"https://api.github.com/repos/numenta/nupic.core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/numenta/nupic.core/labels{/name}","releases_url":"https://api.github.com/repos/numenta/nupic.core/releases{/id}","deployments_url":"https://api.github.com/repos/numenta/nupic.core/deployments","created_at":"2014-01-30T02:13:40Z","updated_at":"2016-09-18T06:16:20Z","pushed_at":"2016-09-23T19:26:21Z","git_url":"git://github.com/numenta/nupic.core.git","ssh_url":"git@github.com:numenta/nupic.core.git","clone_url":"https://github.com/numenta/nupic.core.git","svn_url":"https://github.com/numenta/nupic.core","homepage":"http://numenta.org","size":233699,"stargazers_count":167,"watchers_count":167,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":165,"mirror_url":null,"open_issues_count":125,"forks":165,"open_issues":125,"watchers":167,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/numenta/nupic.core/pulls/1105"},"html":{"href":"https://github.com/numenta/nupic.core/pull/1105"},"issue":{"href":"https://api.github.com/repos/numenta/nupic.core/issues/1105"},"comments":{"href":"https://api.github.com/repos/numenta/nupic.core/issues/1105/comments"},"review_comments":{"href":"https://api.github.com/repos/numenta/nupic.core/pulls/1105/comments"},"review_comment":{"href":"https://api.github.com/repos/numenta/nupic.core/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/numenta/nupic.core/pulls/1105/commits"},"statuses":{"href":"https://api.github.com/repos/numenta/nupic.core/statuses/4e387b68d9b05f88acc22962ebba9863e80c1fe6"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":801,"deletions":404,"changed_files":4}}
{"actor":{"display_login":"mrcslws"}}