{"action":"created","issue":{"url":"https://api.github.com/repos/chainer/chainer/issues/4397","repository_url":"https://api.github.com/repos/chainer/chainer","labels_url":"https://api.github.com/repos/chainer/chainer/issues/4397/labels{/name}","comments_url":"https://api.github.com/repos/chainer/chainer/issues/4397/comments","events_url":"https://api.github.com/repos/chainer/chainer/issues/4397/events","html_url":"https://github.com/chainer/chainer/pull/4397","id":299593281,"number":4397,"title":"Sparse matmul support","user":{"login":"anaruse","id":20274068,"avatar_url":"https://avatars1.githubusercontent.com/u/20274068?v=4","gravatar_id":"","url":"https://api.github.com/users/anaruse","html_url":"https://github.com/anaruse","followers_url":"https://api.github.com/users/anaruse/followers","following_url":"https://api.github.com/users/anaruse/following{/other_user}","gists_url":"https://api.github.com/users/anaruse/gists{/gist_id}","starred_url":"https://api.github.com/users/anaruse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anaruse/subscriptions","organizations_url":"https://api.github.com/users/anaruse/orgs","repos_url":"https://api.github.com/users/anaruse/repos","events_url":"https://api.github.com/users/anaruse/events{/privacy}","received_events_url":"https://api.github.com/users/anaruse/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"hvy","id":5983694,"avatar_url":"https://avatars2.githubusercontent.com/u/5983694?v=4","gravatar_id":"","url":"https://api.github.com/users/hvy","html_url":"https://github.com/hvy","followers_url":"https://api.github.com/users/hvy/followers","following_url":"https://api.github.com/users/hvy/following{/other_user}","gists_url":"https://api.github.com/users/hvy/gists{/gist_id}","starred_url":"https://api.github.com/users/hvy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvy/subscriptions","organizations_url":"https://api.github.com/users/hvy/orgs","repos_url":"https://api.github.com/users/hvy/repos","events_url":"https://api.github.com/users/hvy/events{/privacy}","received_events_url":"https://api.github.com/users/hvy/received_events","type":"User","site_admin":false},"assignees":[{"login":"hvy","id":5983694,"avatar_url":"https://avatars2.githubusercontent.com/u/5983694?v=4","gravatar_id":"","url":"https://api.github.com/users/hvy","html_url":"https://github.com/hvy","followers_url":"https://api.github.com/users/hvy/followers","following_url":"https://api.github.com/users/hvy/following{/other_user}","gists_url":"https://api.github.com/users/hvy/gists{/gist_id}","starred_url":"https://api.github.com/users/hvy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvy/subscriptions","organizations_url":"https://api.github.com/users/hvy/orgs","repos_url":"https://api.github.com/users/hvy/repos","events_url":"https://api.github.com/users/hvy/events{/privacy}","received_events_url":"https://api.github.com/users/hvy/received_events","type":"User","site_admin":false}],"milestone":null,"comments":32,"created_at":"2018-02-23T04:10:29Z","updated_at":"2018-05-14T06:12:55Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/chainer/chainer/pulls/4397","html_url":"https://github.com/chainer/chainer/pull/4397","diff_url":"https://github.com/chainer/chainer/pull/4397.diff","patch_url":"https://github.com/chainer/chainer/pull/4397.patch"},"body":"This PR aims to support sparse matmul in Chainer (this is related to https://github.com/chainer/chainer/issues/4377 and https://github.com/pfnet-research/chainer-chemistry/pull/90).\r\n\r\nI implemented a function named `sparse_matmul` which computes matrix multiplication of sparse and dense matrix. The usage of this function is as follows (assuming `a` and `b` are matrix or 3D tensor).\r\n\r\n    sp_a = F.sparse_dense2coo(a)\r\n    c = F.sparse_matmul(sp_a, b)\r\n\r\nYou can also use this function for batched sparse matrix multiplication (actually this is my main focus) like `matmul`. It supports backward and double-backward, so that you can compute gradients of sparse and dense matrix and gradients of gradients as well.\r\n\r\nPlease note that CPU version is not implemented now because I don't have good idea on efficient CPU implementation using numpy or scipy for batched sparse matrix multiplication."},"comment":{"url":"https://api.github.com/repos/chainer/chainer/issues/comments/388707616","html_url":"https://github.com/chainer/chainer/pull/4397#issuecomment-388707616","issue_url":"https://api.github.com/repos/chainer/chainer/issues/4397","id":388707616,"user":{"login":"hvy","id":5983694,"avatar_url":"https://avatars2.githubusercontent.com/u/5983694?v=4","gravatar_id":"","url":"https://api.github.com/users/hvy","html_url":"https://github.com/hvy","followers_url":"https://api.github.com/users/hvy/followers","following_url":"https://api.github.com/users/hvy/following{/other_user}","gists_url":"https://api.github.com/users/hvy/gists{/gist_id}","starred_url":"https://api.github.com/users/hvy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvy/subscriptions","organizations_url":"https://api.github.com/users/hvy/orgs","repos_url":"https://api.github.com/users/hvy/repos","events_url":"https://api.github.com/users/hvy/events{/privacy}","received_events_url":"https://api.github.com/users/hvy/received_events","type":"User","site_admin":false},"created_at":"2018-05-14T06:12:55Z","updated_at":"2018-05-14T06:12:55Z","author_association":"OWNER","body":"The CI passes and it looks good except a minor detail that the `CooMatrix` link for the argument seems broken. Maybe you have to write using `(:class: ... or ... :class: ...)` ?"}}
{"actor":{"display_login":"hvy"}}