{"action":"created","comment":{"url":"https://api.github.com/repos/chainer/chainercv/pulls/comments/196786568","pull_request_review_id":130403289,"id":196786568,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Njc4NjU2OA==","diff_hunk":"@@ -0,0 +1,183 @@\n+from __future__ import division\n+\n+import numpy as np\n+\n+import chainer\n+from chainer.backends import cuda\n+import chainer.functions as F\n+\n+from chainercv.experimental.links.model.fcis.utils.proposal_target_creator \\\n+    import ProposalTargetCreator\n+from chainercv.links.model.faster_rcnn.faster_rcnn_train_chain \\\n+    import _fast_rcnn_loc_loss\n+from chainercv.links.model.faster_rcnn.utils.anchor_target_creator \\\n+    import AnchorTargetCreator\n+\n+\n+class FCISTrainChain(chainer.Chain):\n+\n+    \"\"\"Calculate losses for FCIS and report them.\n+\n+    This is used to train FCIS in the joint training scheme [#FCISCVPR]_.\n+\n+    The losses include:\n+\n+    * :obj:`rpn_loc_loss`: The localization loss for \\\n+        Region Proposal Network (RPN).\n+    * :obj:`rpn_cls_loss`: The classification loss for RPN.\n+    * :obj:`roi_loc_loss`: The localization loss for the head module.\n+    * :obj:`roi_cls_loss`: The classification loss for the head module.\n+    * :obj:`roi_mask_loss`: The mask loss for the head module.\n+\n+    .. [#FCISCVPR] Yi Li, Haozhi Qi, Jifeng Dai, Xiangyang Ji, Yichen Wei. \\\n+    Fully Convolutional Instance-aware Semantic Segmentation. CVPR 2017.\n+\n+    Args:\n+        fcis (~chainercv.experimental.links.model.fcis.FCIS):\n+            A FCIS model for training.\n+        rpn_sigma (float): Sigma parameter for the localization loss\n+            of Region Proposal Network (RPN). The default value is 3,\n+            which is the value used in [#FCISCVPR]_.\n+        roi_sigma (float): Sigma paramter for the localization loss of\n+            the head. The default value is 1, which is the value used\n+            in [#FCISCVPR]_.\n+        anchor_target_creator: An instantiation of\n+            :class:`~chainercv.links.model.faster_rcnn.AnchorTargetCreator`.\n+        proposal_target_creator: An instantiation of\n+            :class:`~chainercv.experimental.links.model.fcis.ProposalTargetCreator`.\n+\n+    \"\"\"\n+\n+    def __init__(\n+            self, fcis,\n+            rpn_sigma=3.0, roi_sigma=1.0,\n+            anchor_target_creator=AnchorTargetCreator(),\n+            proposal_target_creator=ProposalTargetCreator()\n+    ):\n+\n+        super(FCISTrainChain, self).__init__()\n+        with self.init_scope():\n+            self.fcis = fcis\n+        self.rpn_sigma = rpn_sigma\n+        self.roi_sigma = roi_sigma\n+        self.mask_size = self.fcis.head.roi_size\n+\n+        self.loc_normalize_mean = fcis.loc_normalize_mean\n+        self.loc_normalize_std = fcis.loc_normalize_std\n+\n+        self.anchor_target_creator = anchor_target_creator\n+        self.proposal_target_creator = proposal_target_creator\n+\n+    def __call__(self, imgs, masks, labels, bboxes, scale):\n+        \"\"\"Forward FCIS and calculate losses.\n+\n+        Here are notations used.\n+\n+        * :math:`N` is the batch size.\n+        * :math:`R` is the number of bounding boxes per image.\n+        * :math:`H` is the image height.\n+        * :math:`W` is the image width.\n+\n+        Currently, only :math:`N=1` is supported.\n+\n+        Args:\n+            imgs (~chainer.Variable): A variable with a batch of images.\n+            masks (~chainer.Variable): A batch of masks.\n+                Its shape is :math:`(N, R, H, W)`.\n+            labels (~chainer.Variable): A batch of labels.\n+                Its shape is :math:`(N, R)`. The background is excluded from\n+                the definition, which means that the range of the value\n+                is :math:`[0, L - 1]`. :math:`L` is the number of foreground\n+                classes.\n+            bboxes (~chainer.Variable): A batch of bounding boxes.\n+                Its shape is :math:`(N, R, 4)`.\n+            scale (float or ~chainer.Variable): Amount of scaling applied to\n+                the raw image during preprocessing.\n+\n+        Returns:\n+            chainer.Variable:\n+            Scalar loss variable.\n+            This is the sum of losses for Region Proposal Network and\n+            the head module.\n+\n+        \"\"\"\n+        if isinstance(masks, chainer.Variable):\n+            masks = masks.array\n+        if isinstance(labels, chainer.Variable):\n+            labels = labels.array\n+        if isinstance(bboxes, chainer.Variable):\n+            bboxes = bboxes.array\n+        if isinstance(scale, chainer.Variable):\n+            scale = scale.array\n+        scale = np.asscalar(cuda.to_cpu(scale))\n+\n+        n = masks.shape[0]\n+        # batch size = 1\n+        if n != 1:\n+            raise ValueError('Currently only batch size 1 is supported.')\n+\n+        _, _, H, W = imgs.shape\n+        img_size = (H, W)\n+        assert img_size == masks.shape[2:]\n+\n+        rpn_features, roi_features = self.fcis.extractor(imgs)\n+        rpn_locs, rpn_scores, rois, roi_indices, anchor = self.fcis.rpn(\n+            rpn_features, img_size, scale)\n+\n+        # batch size = 1\n+        mask = masks[0]\n+        label = labels[0]\n+        bbox = bboxes[0]\n+        rpn_score = rpn_scores[0]\n+        rpn_loc = rpn_locs[0]\n+        roi = rois\n+\n+        # Sample RoIs and forward\n+        sample_roi, gt_roi_mask, gt_roi_label, gt_roi_loc = \\\n+            self.proposal_target_creator(\n+                roi, mask, label, bbox, self.loc_normalize_mean,\n+                self.loc_normalize_std, self.mask_size)\n+\n+        sample_roi_index = self.xp.zeros(\n+            (len(sample_roi),), dtype=np.int32)\n+        roi_ag_seg_score, roi_ag_loc, roi_cls_score, _, _ = self.fcis.head(\n+            roi_features, sample_roi, sample_roi_index, img_size, gt_roi_label)\n+\n+        # RPN losses\n+        gt_rpn_loc, gt_rpn_label = self.anchor_target_creator(\n+            bbox, anchor, img_size)\n+\n+        # CPU -> GPU\n+        if cuda.get_array_module(rpn_loc.array) != np:\n+            gt_rpn_loc = cuda.to_gpu(gt_rpn_loc)\n+            gt_rpn_label = cuda.to_gpu(gt_rpn_label)\n+\n+        rpn_loc_loss = _fast_rcnn_loc_loss(\n+            rpn_loc, gt_rpn_loc, gt_rpn_label, self.rpn_sigma)\n+        rpn_cls_loss = F.softmax_cross_entropy(rpn_score, gt_rpn_label)\n+\n+        # Losses for outputs of the head\n+        n_rois = roi_ag_loc.shape[0]","path":"chainercv/experimental/links/model/fcis/fcis_train_chain.py","position":160,"original_position":160,"commit_id":"d78b3c5721873b7541eb746e7357936fa803a1de","original_commit_id":"d78b3c5721873b7541eb746e7357936fa803a1de","user":{"login":"yuyu2172","id":2062128,"node_id":"MDQ6VXNlcjIwNjIxMjg=","avatar_url":"https://avatars3.githubusercontent.com/u/2062128?v=4","gravatar_id":"","url":"https://api.github.com/users/yuyu2172","html_url":"https://github.com/yuyu2172","followers_url":"https://api.github.com/users/yuyu2172/followers","following_url":"https://api.github.com/users/yuyu2172/following{/other_user}","gists_url":"https://api.github.com/users/yuyu2172/gists{/gist_id}","starred_url":"https://api.github.com/users/yuyu2172/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuyu2172/subscriptions","organizations_url":"https://api.github.com/users/yuyu2172/orgs","repos_url":"https://api.github.com/users/yuyu2172/repos","events_url":"https://api.github.com/users/yuyu2172/events{/privacy}","received_events_url":"https://api.github.com/users/yuyu2172/received_events","type":"User","site_admin":false},"body":"`n_roi`","created_at":"2018-06-20T13:50:12Z","updated_at":"2018-06-20T14:02:48Z","html_url":"https://github.com/chainer/chainercv/pull/620#discussion_r196786568","pull_request_url":"https://api.github.com/repos/chainer/chainercv/pulls/620","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/comments/196786568"},"html":{"href":"https://github.com/chainer/chainercv/pull/620#discussion_r196786568"},"pull_request":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/620"}}},"pull_request":{"url":"https://api.github.com/repos/chainer/chainercv/pulls/620","id":190725618,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkwNzI1NjE4","html_url":"https://github.com/chainer/chainercv/pull/620","diff_url":"https://github.com/chainer/chainercv/pull/620.diff","patch_url":"https://github.com/chainer/chainercv/pull/620.patch","issue_url":"https://api.github.com/repos/chainer/chainercv/issues/620","number":620,"state":"open","locked":false,"title":"Add FCIS training","user":{"login":"knorth55","id":9300063,"node_id":"MDQ6VXNlcjkzMDAwNjM=","avatar_url":"https://avatars0.githubusercontent.com/u/9300063?v=4","gravatar_id":"","url":"https://api.github.com/users/knorth55","html_url":"https://github.com/knorth55","followers_url":"https://api.github.com/users/knorth55/followers","following_url":"https://api.github.com/users/knorth55/following{/other_user}","gists_url":"https://api.github.com/users/knorth55/gists{/gist_id}","starred_url":"https://api.github.com/users/knorth55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knorth55/subscriptions","organizations_url":"https://api.github.com/users/knorth55/orgs","repos_url":"https://api.github.com/users/knorth55/repos","events_url":"https://api.github.com/users/knorth55/events{/privacy}","received_events_url":"https://api.github.com/users/knorth55/received_events","type":"User","site_admin":false},"body":"## Main Changes\r\n- [x] add `ProposalTargetCreator` for `FCIS`\r\n- [x] add `TestProposalTargetCreator`\r\n- [x] add `FCISTrainChain`\r\n- [x] add `TestFCISTrainChain`\r\n- [x] add `tain.py`\r\n- [x] add `train_multi.py`\r\n\r\n## Small fixes\r\n- [x] import `experimental.links`\r\n~~- [x] fix `mask_to_bbox`~~ (move to #625 )\r\n\r\n## Documentation\r\n- [x] add docstring for `FCISTrainChain`\r\n- [x] add docstring for `ProposalTargetCreator`\r\n- [x] add `FCISTrainChain` in doc\r\n- [x] add `ProposalTargetCreator` in doc\r\n\r\n## README\r\n- [x] add `examples/fcis/README.md`\r\n- [x] add `examples/instance_segmentation/README.md`","created_at":"2018-05-26T04:50:58Z","updated_at":"2018-06-20T14:02:49Z","closed_at":null,"merged_at":null,"merge_commit_sha":"42b03909626f16c90e0562f5264d641216d3ff76","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":623242512,"node_id":"MDU6TGFiZWw2MjMyNDI1MTI=","url":"https://api.github.com/repos/chainer/chainercv/labels/feature","name":"feature","color":"fbca04","default":false}],"milestone":{"url":"https://api.github.com/repos/chainer/chainercv/milestones/6","html_url":"https://github.com/chainer/chainercv/milestone/6","labels_url":"https://api.github.com/repos/chainer/chainercv/milestones/6/labels","id":3392399,"node_id":"MDk6TWlsZXN0b25lMzM5MjM5OQ==","number":6,"title":"0.11","description":"","creator":{"login":"yuyu2172","id":2062128,"node_id":"MDQ6VXNlcjIwNjIxMjg=","avatar_url":"https://avatars3.githubusercontent.com/u/2062128?v=4","gravatar_id":"","url":"https://api.github.com/users/yuyu2172","html_url":"https://github.com/yuyu2172","followers_url":"https://api.github.com/users/yuyu2172/followers","following_url":"https://api.github.com/users/yuyu2172/following{/other_user}","gists_url":"https://api.github.com/users/yuyu2172/gists{/gist_id}","starred_url":"https://api.github.com/users/yuyu2172/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/yuyu2172/subscriptions","organizations_url":"https://api.github.com/users/yuyu2172/orgs","repos_url":"https://api.github.com/users/yuyu2172/repos","events_url":"https://api.github.com/users/yuyu2172/events{/privacy}","received_events_url":"https://api.github.com/users/yuyu2172/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":7,"state":"open","created_at":"2018-06-01T06:02:24Z","updated_at":"2018-06-20T09:59:53Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/chainer/chainercv/pulls/620/commits","review_comments_url":"https://api.github.com/repos/chainer/chainercv/pulls/620/comments","review_comment_url":"https://api.github.com/repos/chainer/chainercv/pulls/comments{/number}","comments_url":"https://api.github.com/repos/chainer/chainercv/issues/620/comments","statuses_url":"https://api.github.com/repos/chainer/chainercv/statuses/d78b3c5721873b7541eb746e7357936fa803a1de","head":{"label":"knorth55:add-fcis-train-chain","ref":"add-fcis-train-chain","sha":"d78b3c5721873b7541eb746e7357936fa803a1de","user":{"login":"knorth55","id":9300063,"node_id":"MDQ6VXNlcjkzMDAwNjM=","avatar_url":"https://avatars0.githubusercontent.com/u/9300063?v=4","gravatar_id":"","url":"https://api.github.com/users/knorth55","html_url":"https://github.com/knorth55","followers_url":"https://api.github.com/users/knorth55/followers","following_url":"https://api.github.com/users/knorth55/following{/other_user}","gists_url":"https://api.github.com/users/knorth55/gists{/gist_id}","starred_url":"https://api.github.com/users/knorth55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knorth55/subscriptions","organizations_url":"https://api.github.com/users/knorth55/orgs","repos_url":"https://api.github.com/users/knorth55/repos","events_url":"https://api.github.com/users/knorth55/events{/privacy}","received_events_url":"https://api.github.com/users/knorth55/received_events","type":"User","site_admin":false},"repo":{"id":96465368,"node_id":"MDEwOlJlcG9zaXRvcnk5NjQ2NTM2OA==","name":"chainercv","full_name":"knorth55/chainercv","owner":{"login":"knorth55","id":9300063,"node_id":"MDQ6VXNlcjkzMDAwNjM=","avatar_url":"https://avatars0.githubusercontent.com/u/9300063?v=4","gravatar_id":"","url":"https://api.github.com/users/knorth55","html_url":"https://github.com/knorth55","followers_url":"https://api.github.com/users/knorth55/followers","following_url":"https://api.github.com/users/knorth55/following{/other_user}","gists_url":"https://api.github.com/users/knorth55/gists{/gist_id}","starred_url":"https://api.github.com/users/knorth55/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/knorth55/subscriptions","organizations_url":"https://api.github.com/users/knorth55/orgs","repos_url":"https://api.github.com/users/knorth55/repos","events_url":"https://api.github.com/users/knorth55/events{/privacy}","received_events_url":"https://api.github.com/users/knorth55/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/knorth55/chainercv","description":"ChainerCV: a Library for Computer Vision in Deep Learning","fork":true,"url":"https://api.github.com/repos/knorth55/chainercv","forks_url":"https://api.github.com/repos/knorth55/chainercv/forks","keys_url":"https://api.github.com/repos/knorth55/chainercv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/knorth55/chainercv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/knorth55/chainercv/teams","hooks_url":"https://api.github.com/repos/knorth55/chainercv/hooks","issue_events_url":"https://api.github.com/repos/knorth55/chainercv/issues/events{/number}","events_url":"https://api.github.com/repos/knorth55/chainercv/events","assignees_url":"https://api.github.com/repos/knorth55/chainercv/assignees{/user}","branches_url":"https://api.github.com/repos/knorth55/chainercv/branches{/branch}","tags_url":"https://api.github.com/repos/knorth55/chainercv/tags","blobs_url":"https://api.github.com/repos/knorth55/chainercv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/knorth55/chainercv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/knorth55/chainercv/git/refs{/sha}","trees_url":"https://api.github.com/repos/knorth55/chainercv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/knorth55/chainercv/statuses/{sha}","languages_url":"https://api.github.com/repos/knorth55/chainercv/languages","stargazers_url":"https://api.github.com/repos/knorth55/chainercv/stargazers","contributors_url":"https://api.github.com/repos/knorth55/chainercv/contributors","subscribers_url":"https://api.github.com/repos/knorth55/chainercv/subscribers","subscription_url":"https://api.github.com/repos/knorth55/chainercv/subscription","commits_url":"https://api.github.com/repos/knorth55/chainercv/commits{/sha}","git_commits_url":"https://api.github.com/repos/knorth55/chainercv/git/commits{/sha}","comments_url":"https://api.github.com/repos/knorth55/chainercv/comments{/number}","issue_comment_url":"https://api.github.com/repos/knorth55/chainercv/issues/comments{/number}","contents_url":"https://api.github.com/repos/knorth55/chainercv/contents/{+path}","compare_url":"https://api.github.com/repos/knorth55/chainercv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/knorth55/chainercv/merges","archive_url":"https://api.github.com/repos/knorth55/chainercv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/knorth55/chainercv/downloads","issues_url":"https://api.github.com/repos/knorth55/chainercv/issues{/number}","pulls_url":"https://api.github.com/repos/knorth55/chainercv/pulls{/number}","milestones_url":"https://api.github.com/repos/knorth55/chainercv/milestones{/number}","notifications_url":"https://api.github.com/repos/knorth55/chainercv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/knorth55/chainercv/labels{/name}","releases_url":"https://api.github.com/repos/knorth55/chainercv/releases{/id}","deployments_url":"https://api.github.com/repos/knorth55/chainercv/deployments","created_at":"2017-07-06T19:32:44Z","updated_at":"2017-07-06T19:32:45Z","pushed_at":"2018-06-20T07:59:15Z","git_url":"git://github.com/knorth55/chainercv.git","ssh_url":"git@github.com:knorth55/chainercv.git","clone_url":"https://github.com/knorth55/chainercv.git","svn_url":"https://github.com/knorth55/chainercv","homepage":"","size":4595,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"chainer:master","ref":"master","sha":"6665fbfa5cea20b7757b43d7d8f627cef42529e2","user":{"login":"chainer","id":23183003,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMTgzMDAz","avatar_url":"https://avatars3.githubusercontent.com/u/23183003?v=4","gravatar_id":"","url":"https://api.github.com/users/chainer","html_url":"https://github.com/chainer","followers_url":"https://api.github.com/users/chainer/followers","following_url":"https://api.github.com/users/chainer/following{/other_user}","gists_url":"https://api.github.com/users/chainer/gists{/gist_id}","starred_url":"https://api.github.com/users/chainer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chainer/subscriptions","organizations_url":"https://api.github.com/users/chainer/orgs","repos_url":"https://api.github.com/users/chainer/repos","events_url":"https://api.github.com/users/chainer/events{/privacy}","received_events_url":"https://api.github.com/users/chainer/received_events","type":"Organization","site_admin":false},"repo":{"id":81784084,"node_id":"MDEwOlJlcG9zaXRvcnk4MTc4NDA4NA==","name":"chainercv","full_name":"chainer/chainercv","owner":{"login":"chainer","id":23183003,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzMTgzMDAz","avatar_url":"https://avatars3.githubusercontent.com/u/23183003?v=4","gravatar_id":"","url":"https://api.github.com/users/chainer","html_url":"https://github.com/chainer","followers_url":"https://api.github.com/users/chainer/followers","following_url":"https://api.github.com/users/chainer/following{/other_user}","gists_url":"https://api.github.com/users/chainer/gists{/gist_id}","starred_url":"https://api.github.com/users/chainer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chainer/subscriptions","organizations_url":"https://api.github.com/users/chainer/orgs","repos_url":"https://api.github.com/users/chainer/repos","events_url":"https://api.github.com/users/chainer/events{/privacy}","received_events_url":"https://api.github.com/users/chainer/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/chainer/chainercv","description":"ChainerCV: a Library for Deep Learning in Computer Vision","fork":false,"url":"https://api.github.com/repos/chainer/chainercv","forks_url":"https://api.github.com/repos/chainer/chainercv/forks","keys_url":"https://api.github.com/repos/chainer/chainercv/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chainer/chainercv/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chainer/chainercv/teams","hooks_url":"https://api.github.com/repos/chainer/chainercv/hooks","issue_events_url":"https://api.github.com/repos/chainer/chainercv/issues/events{/number}","events_url":"https://api.github.com/repos/chainer/chainercv/events","assignees_url":"https://api.github.com/repos/chainer/chainercv/assignees{/user}","branches_url":"https://api.github.com/repos/chainer/chainercv/branches{/branch}","tags_url":"https://api.github.com/repos/chainer/chainercv/tags","blobs_url":"https://api.github.com/repos/chainer/chainercv/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chainer/chainercv/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chainer/chainercv/git/refs{/sha}","trees_url":"https://api.github.com/repos/chainer/chainercv/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chainer/chainercv/statuses/{sha}","languages_url":"https://api.github.com/repos/chainer/chainercv/languages","stargazers_url":"https://api.github.com/repos/chainer/chainercv/stargazers","contributors_url":"https://api.github.com/repos/chainer/chainercv/contributors","subscribers_url":"https://api.github.com/repos/chainer/chainercv/subscribers","subscription_url":"https://api.github.com/repos/chainer/chainercv/subscription","commits_url":"https://api.github.com/repos/chainer/chainercv/commits{/sha}","git_commits_url":"https://api.github.com/repos/chainer/chainercv/git/commits{/sha}","comments_url":"https://api.github.com/repos/chainer/chainercv/comments{/number}","issue_comment_url":"https://api.github.com/repos/chainer/chainercv/issues/comments{/number}","contents_url":"https://api.github.com/repos/chainer/chainercv/contents/{+path}","compare_url":"https://api.github.com/repos/chainer/chainercv/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chainer/chainercv/merges","archive_url":"https://api.github.com/repos/chainer/chainercv/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chainer/chainercv/downloads","issues_url":"https://api.github.com/repos/chainer/chainercv/issues{/number}","pulls_url":"https://api.github.com/repos/chainer/chainercv/pulls{/number}","milestones_url":"https://api.github.com/repos/chainer/chainercv/milestones{/number}","notifications_url":"https://api.github.com/repos/chainer/chainercv/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chainer/chainercv/labels{/name}","releases_url":"https://api.github.com/repos/chainer/chainercv/releases{/id}","deployments_url":"https://api.github.com/repos/chainer/chainercv/deployments","created_at":"2017-02-13T04:15:10Z","updated_at":"2018-06-20T01:59:56Z","pushed_at":"2018-06-20T10:45:55Z","git_url":"git://github.com/chainer/chainercv.git","ssh_url":"git@github.com:chainer/chainercv.git","clone_url":"https://github.com/chainer/chainercv.git","svn_url":"https://github.com/chainer/chainercv","homepage":"","size":4546,"stargazers_count":709,"watchers_count":709,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":149,"mirror_url":null,"archived":false,"open_issues_count":44,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":149,"open_issues":44,"watchers":709,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/620"},"html":{"href":"https://github.com/chainer/chainercv/pull/620"},"issue":{"href":"https://api.github.com/repos/chainer/chainercv/issues/620"},"comments":{"href":"https://api.github.com/repos/chainer/chainercv/issues/620/comments"},"review_comments":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/620/comments"},"review_comment":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/chainer/chainercv/pulls/620/commits"},"statuses":{"href":"https://api.github.com/repos/chainer/chainercv/statuses/d78b3c5721873b7541eb746e7357936fa803a1de"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"yuyu2172"}}