{"action":"created","comment":{"url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/comments/226847519","pull_request_review_id":166770048,"id":226847519,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyNjg0NzUxOQ==","diff_hunk":"@@ -0,0 +1,144 @@\n+from core.utils.event_types import ActionableEventTypes, RawEventTypes, callback_handler\n+from core.utils.dmljob import deserialize_job\n+from core.utils.dmlresult import DMLResult\n+\n+class FederatedAveragingOptimizer(object):\n+\t\"\"\"\n+\tFederated Averaging Optimizer\n+\n+\tImplements the Federated Averaging algorithm (with some tweaks)\n+\tand acts as a \"brain\" for the Unix Service\n+\n+\t\"\"\"\n+\tdef __init__(self, content):\n+\t\t\"\"\"\n+\t\tKwargs is a dictionary containing all the info needed to initialize the Optimizer.\n+\t\tThis includes any number of properties such as thresholds, etc.\n+\t\t\"\"\"\n+\t\tkwargs = content.get('optimizer_params')\n+\t\tserialized_job = content.get('serialized_job')\n+\t\t# The Optimizer knows its job\n+\t\tself.job = deserialize_job(serialized_job)\n+\t\tself.listen_iterations = kwargs.get('listen_iterations', 0)\n+\t\tself.listen_bound = kwargs.get('listen_bound', 1)\n+\t\tself.LEVEL_1_CALLBACKS = {","path":"core/fedavgoptimizer.py","position":31,"original_position":24,"commit_id":"394a96d910f3f35cae4ce50d164958716e7a0286","original_commit_id":"7f527cbf80997d13d2c078fa331eab552b104f1e","user":{"login":"kiddyboots216","id":22651617,"node_id":"MDQ6VXNlcjIyNjUxNjE3","avatar_url":"https://avatars3.githubusercontent.com/u/22651617?v=4","gravatar_id":"","url":"https://api.github.com/users/kiddyboots216","html_url":"https://github.com/kiddyboots216","followers_url":"https://api.github.com/users/kiddyboots216/followers","following_url":"https://api.github.com/users/kiddyboots216/following{/other_user}","gists_url":"https://api.github.com/users/kiddyboots216/gists{/gist_id}","starred_url":"https://api.github.com/users/kiddyboots216/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiddyboots216/subscriptions","organizations_url":"https://api.github.com/users/kiddyboots216/orgs","repos_url":"https://api.github.com/users/kiddyboots216/repos","events_url":"https://api.github.com/users/kiddyboots216/events{/privacy}","received_events_url":"https://api.github.com/users/kiddyboots216/received_events","type":"User","site_admin":false},"body":"done","created_at":"2018-10-21T04:49:50Z","updated_at":"2018-10-21T04:49:50Z","html_url":"https://github.com/georgymh/decentralized-ml/pull/26#discussion_r226847519","pull_request_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/comments/226847519"},"html":{"href":"https://github.com/georgymh/decentralized-ml/pull/26#discussion_r226847519"},"pull_request":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26"}},"in_reply_to_id":226843490},"pull_request":{"url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26","id":224449679,"node_id":"MDExOlB1bGxSZXF1ZXN0MjI0NDQ5Njc5","html_url":"https://github.com/georgymh/decentralized-ml/pull/26","diff_url":"https://github.com/georgymh/decentralized-ml/pull/26.diff","patch_url":"https://github.com/georgymh/decentralized-ml/pull/26.patch","issue_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/26","number":26,"state":"open","locked":false,"title":"Communication_Manager & Optimizer","user":{"login":"kiddyboots216","id":22651617,"node_id":"MDQ6VXNlcjIyNjUxNjE3","avatar_url":"https://avatars3.githubusercontent.com/u/22651617?v=4","gravatar_id":"","url":"https://api.github.com/users/kiddyboots216","html_url":"https://github.com/kiddyboots216","followers_url":"https://api.github.com/users/kiddyboots216/followers","following_url":"https://api.github.com/users/kiddyboots216/following{/other_user}","gists_url":"https://api.github.com/users/kiddyboots216/gists{/gist_id}","starred_url":"https://api.github.com/users/kiddyboots216/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kiddyboots216/subscriptions","organizations_url":"https://api.github.com/users/kiddyboots216/orgs","repos_url":"https://api.github.com/users/kiddyboots216/repos","events_url":"https://api.github.com/users/kiddyboots216/events{/privacy}","received_events_url":"https://api.github.com/users/kiddyboots216/received_events","type":"User","site_admin":false},"body":"This is a big one.\r\nTons of changes.\r\n@georgymh rewrote communication_manager and fedavgoptimizer pretty much entirely\r\nUpdated Scheduler and Runner for DMLResults flow\r\nCommunication and Averaging jobs are currently nonfunctional; I'm going to make separate PRs for those\r\nThe biggest test is the first one that runs in tests/test_communication_manager because...well, just take a look. I basically can't unit-test, not sure why, initializing the model will hang.","created_at":"2018-10-20T03:53:40Z","updated_at":"2018-10-21T04:49:50Z","closed_at":null,"merged_at":null,"merge_commit_sha":"34db948fc1dfe67ba14c4f5b78cddf6952ee4f63","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26/commits","review_comments_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26/comments","review_comment_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/comments{/number}","comments_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/26/comments","statuses_url":"https://api.github.com/repos/georgymh/decentralized-ml/statuses/394a96d910f3f35cae4ce50d164958716e7a0286","head":{"label":"georgymh:optimize","ref":"optimize","sha":"394a96d910f3f35cae4ce50d164958716e7a0286","user":{"login":"georgymh","id":7425056,"node_id":"MDQ6VXNlcjc0MjUwNTY=","avatar_url":"https://avatars3.githubusercontent.com/u/7425056?v=4","gravatar_id":"","url":"https://api.github.com/users/georgymh","html_url":"https://github.com/georgymh","followers_url":"https://api.github.com/users/georgymh/followers","following_url":"https://api.github.com/users/georgymh/following{/other_user}","gists_url":"https://api.github.com/users/georgymh/gists{/gist_id}","starred_url":"https://api.github.com/users/georgymh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgymh/subscriptions","organizations_url":"https://api.github.com/users/georgymh/orgs","repos_url":"https://api.github.com/users/georgymh/repos","events_url":"https://api.github.com/users/georgymh/events{/privacy}","received_events_url":"https://api.github.com/users/georgymh/received_events","type":"User","site_admin":false},"repo":{"id":133437202,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM0MzcyMDI=","name":"decentralized-ml","full_name":"georgymh/decentralized-ml","private":false,"owner":{"login":"georgymh","id":7425056,"node_id":"MDQ6VXNlcjc0MjUwNTY=","avatar_url":"https://avatars3.githubusercontent.com/u/7425056?v=4","gravatar_id":"","url":"https://api.github.com/users/georgymh","html_url":"https://github.com/georgymh","followers_url":"https://api.github.com/users/georgymh/followers","following_url":"https://api.github.com/users/georgymh/following{/other_user}","gists_url":"https://api.github.com/users/georgymh/gists{/gist_id}","starred_url":"https://api.github.com/users/georgymh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgymh/subscriptions","organizations_url":"https://api.github.com/users/georgymh/orgs","repos_url":"https://api.github.com/users/georgymh/repos","events_url":"https://api.github.com/users/georgymh/events{/privacy}","received_events_url":"https://api.github.com/users/georgymh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/georgymh/decentralized-ml","description":"Interoperable and decentralized machine learning.","fork":false,"url":"https://api.github.com/repos/georgymh/decentralized-ml","forks_url":"https://api.github.com/repos/georgymh/decentralized-ml/forks","keys_url":"https://api.github.com/repos/georgymh/decentralized-ml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/georgymh/decentralized-ml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/georgymh/decentralized-ml/teams","hooks_url":"https://api.github.com/repos/georgymh/decentralized-ml/hooks","issue_events_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/events{/number}","events_url":"https://api.github.com/repos/georgymh/decentralized-ml/events","assignees_url":"https://api.github.com/repos/georgymh/decentralized-ml/assignees{/user}","branches_url":"https://api.github.com/repos/georgymh/decentralized-ml/branches{/branch}","tags_url":"https://api.github.com/repos/georgymh/decentralized-ml/tags","blobs_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/refs{/sha}","trees_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/georgymh/decentralized-ml/statuses/{sha}","languages_url":"https://api.github.com/repos/georgymh/decentralized-ml/languages","stargazers_url":"https://api.github.com/repos/georgymh/decentralized-ml/stargazers","contributors_url":"https://api.github.com/repos/georgymh/decentralized-ml/contributors","subscribers_url":"https://api.github.com/repos/georgymh/decentralized-ml/subscribers","subscription_url":"https://api.github.com/repos/georgymh/decentralized-ml/subscription","commits_url":"https://api.github.com/repos/georgymh/decentralized-ml/commits{/sha}","git_commits_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/commits{/sha}","comments_url":"https://api.github.com/repos/georgymh/decentralized-ml/comments{/number}","issue_comment_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/comments{/number}","contents_url":"https://api.github.com/repos/georgymh/decentralized-ml/contents/{+path}","compare_url":"https://api.github.com/repos/georgymh/decentralized-ml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/georgymh/decentralized-ml/merges","archive_url":"https://api.github.com/repos/georgymh/decentralized-ml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/georgymh/decentralized-ml/downloads","issues_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues{/number}","pulls_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls{/number}","milestones_url":"https://api.github.com/repos/georgymh/decentralized-ml/milestones{/number}","notifications_url":"https://api.github.com/repos/georgymh/decentralized-ml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/georgymh/decentralized-ml/labels{/name}","releases_url":"https://api.github.com/repos/georgymh/decentralized-ml/releases{/id}","deployments_url":"https://api.github.com/repos/georgymh/decentralized-ml/deployments","created_at":"2018-05-15T00:31:38Z","updated_at":"2018-10-19T22:49:30Z","pushed_at":"2018-10-21T02:05:47Z","git_url":"git://github.com/georgymh/decentralized-ml.git","ssh_url":"git@github.com:georgymh/decentralized-ml.git","clone_url":"https://github.com/georgymh/decentralized-ml.git","svn_url":"https://github.com/georgymh/decentralized-ml","homepage":"https://dataagora.com","size":8919,"stargazers_count":3,"watchers_count":3,"language":"Jupyter Notebook","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":5,"watchers":3,"default_branch":"master"}},"base":{"label":"georgymh:master","ref":"master","sha":"7e1f3c509c9ccaf6f055aad665628b9076bd17bd","user":{"login":"georgymh","id":7425056,"node_id":"MDQ6VXNlcjc0MjUwNTY=","avatar_url":"https://avatars3.githubusercontent.com/u/7425056?v=4","gravatar_id":"","url":"https://api.github.com/users/georgymh","html_url":"https://github.com/georgymh","followers_url":"https://api.github.com/users/georgymh/followers","following_url":"https://api.github.com/users/georgymh/following{/other_user}","gists_url":"https://api.github.com/users/georgymh/gists{/gist_id}","starred_url":"https://api.github.com/users/georgymh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgymh/subscriptions","organizations_url":"https://api.github.com/users/georgymh/orgs","repos_url":"https://api.github.com/users/georgymh/repos","events_url":"https://api.github.com/users/georgymh/events{/privacy}","received_events_url":"https://api.github.com/users/georgymh/received_events","type":"User","site_admin":false},"repo":{"id":133437202,"node_id":"MDEwOlJlcG9zaXRvcnkxMzM0MzcyMDI=","name":"decentralized-ml","full_name":"georgymh/decentralized-ml","private":false,"owner":{"login":"georgymh","id":7425056,"node_id":"MDQ6VXNlcjc0MjUwNTY=","avatar_url":"https://avatars3.githubusercontent.com/u/7425056?v=4","gravatar_id":"","url":"https://api.github.com/users/georgymh","html_url":"https://github.com/georgymh","followers_url":"https://api.github.com/users/georgymh/followers","following_url":"https://api.github.com/users/georgymh/following{/other_user}","gists_url":"https://api.github.com/users/georgymh/gists{/gist_id}","starred_url":"https://api.github.com/users/georgymh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/georgymh/subscriptions","organizations_url":"https://api.github.com/users/georgymh/orgs","repos_url":"https://api.github.com/users/georgymh/repos","events_url":"https://api.github.com/users/georgymh/events{/privacy}","received_events_url":"https://api.github.com/users/georgymh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/georgymh/decentralized-ml","description":"Interoperable and decentralized machine learning.","fork":false,"url":"https://api.github.com/repos/georgymh/decentralized-ml","forks_url":"https://api.github.com/repos/georgymh/decentralized-ml/forks","keys_url":"https://api.github.com/repos/georgymh/decentralized-ml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/georgymh/decentralized-ml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/georgymh/decentralized-ml/teams","hooks_url":"https://api.github.com/repos/georgymh/decentralized-ml/hooks","issue_events_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/events{/number}","events_url":"https://api.github.com/repos/georgymh/decentralized-ml/events","assignees_url":"https://api.github.com/repos/georgymh/decentralized-ml/assignees{/user}","branches_url":"https://api.github.com/repos/georgymh/decentralized-ml/branches{/branch}","tags_url":"https://api.github.com/repos/georgymh/decentralized-ml/tags","blobs_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/refs{/sha}","trees_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/georgymh/decentralized-ml/statuses/{sha}","languages_url":"https://api.github.com/repos/georgymh/decentralized-ml/languages","stargazers_url":"https://api.github.com/repos/georgymh/decentralized-ml/stargazers","contributors_url":"https://api.github.com/repos/georgymh/decentralized-ml/contributors","subscribers_url":"https://api.github.com/repos/georgymh/decentralized-ml/subscribers","subscription_url":"https://api.github.com/repos/georgymh/decentralized-ml/subscription","commits_url":"https://api.github.com/repos/georgymh/decentralized-ml/commits{/sha}","git_commits_url":"https://api.github.com/repos/georgymh/decentralized-ml/git/commits{/sha}","comments_url":"https://api.github.com/repos/georgymh/decentralized-ml/comments{/number}","issue_comment_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues/comments{/number}","contents_url":"https://api.github.com/repos/georgymh/decentralized-ml/contents/{+path}","compare_url":"https://api.github.com/repos/georgymh/decentralized-ml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/georgymh/decentralized-ml/merges","archive_url":"https://api.github.com/repos/georgymh/decentralized-ml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/georgymh/decentralized-ml/downloads","issues_url":"https://api.github.com/repos/georgymh/decentralized-ml/issues{/number}","pulls_url":"https://api.github.com/repos/georgymh/decentralized-ml/pulls{/number}","milestones_url":"https://api.github.com/repos/georgymh/decentralized-ml/milestones{/number}","notifications_url":"https://api.github.com/repos/georgymh/decentralized-ml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/georgymh/decentralized-ml/labels{/name}","releases_url":"https://api.github.com/repos/georgymh/decentralized-ml/releases{/id}","deployments_url":"https://api.github.com/repos/georgymh/decentralized-ml/deployments","created_at":"2018-05-15T00:31:38Z","updated_at":"2018-10-19T22:49:30Z","pushed_at":"2018-10-21T02:05:47Z","git_url":"git://github.com/georgymh/decentralized-ml.git","ssh_url":"git@github.com:georgymh/decentralized-ml.git","clone_url":"https://github.com/georgymh/decentralized-ml.git","svn_url":"https://github.com/georgymh/decentralized-ml","homepage":"https://dataagora.com","size":8919,"stargazers_count":3,"watchers_count":3,"language":"Jupyter Notebook","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"archived":false,"open_issues_count":5,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":1,"open_issues":5,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26"},"html":{"href":"https://github.com/georgymh/decentralized-ml/pull/26"},"issue":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/issues/26"},"comments":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/issues/26/comments"},"review_comments":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26/comments"},"review_comment":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/pulls/26/commits"},"statuses":{"href":"https://api.github.com/repos/georgymh/decentralized-ml/statuses/394a96d910f3f35cae4ce50d164958716e7a0286"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"kiddyboots216"}}