{"action":"created","issue":{"url":"https://api.github.com/repos/Theano/Theano/issues/5267","repository_url":"https://api.github.com/repos/Theano/Theano","labels_url":"https://api.github.com/repos/Theano/Theano/issues/5267/labels{/name}","comments_url":"https://api.github.com/repos/Theano/Theano/issues/5267/comments","events_url":"https://api.github.com/repos/Theano/Theano/issues/5267/events","html_url":"https://github.com/Theano/Theano/pull/5267","id":190852023,"number":5267,"title":"Minor inconsistency in AbstractConv_gradInput implementations","user":{"login":"gvtulder","id":31510,"avatar_url":"https://avatars.githubusercontent.com/u/31510?v=3","gravatar_id":"","url":"https://api.github.com/users/gvtulder","html_url":"https://github.com/gvtulder","followers_url":"https://api.github.com/users/gvtulder/followers","following_url":"https://api.github.com/users/gvtulder/following{/other_user}","gists_url":"https://api.github.com/users/gvtulder/gists{/gist_id}","starred_url":"https://api.github.com/users/gvtulder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvtulder/subscriptions","organizations_url":"https://api.github.com/users/gvtulder/orgs","repos_url":"https://api.github.com/users/gvtulder/repos","events_url":"https://api.github.com/users/gvtulder/events{/privacy}","received_events_url":"https://api.github.com/users/gvtulder/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/Theano/Theano/milestones/6","html_url":"https://github.com/Theano/Theano/milestones/0.9","labels_url":"https://api.github.com/repos/Theano/Theano/milestones/6/labels","id":1586579,"number":6,"title":"0.9","description":"","creator":{"login":"nouiz","id":180987,"avatar_url":"https://avatars.githubusercontent.com/u/180987?v=3","gravatar_id":"","url":"https://api.github.com/users/nouiz","html_url":"https://github.com/nouiz","followers_url":"https://api.github.com/users/nouiz/followers","following_url":"https://api.github.com/users/nouiz/following{/other_user}","gists_url":"https://api.github.com/users/nouiz/gists{/gist_id}","starred_url":"https://api.github.com/users/nouiz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nouiz/subscriptions","organizations_url":"https://api.github.com/users/nouiz/orgs","repos_url":"https://api.github.com/users/nouiz/repos","events_url":"https://api.github.com/users/nouiz/events{/privacy}","received_events_url":"https://api.github.com/users/nouiz/received_events","type":"User","site_admin":false},"open_issues":21,"closed_issues":15,"state":"open","created_at":"2016-02-16T19:03:10Z","updated_at":"2016-11-25T20:16:33Z","due_on":null,"closed_at":null},"comments":8,"created_at":"2016-11-21T22:18:09Z","updated_at":"2016-11-25T20:46:13Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/Theano/Theano/pulls/5267","html_url":"https://github.com/Theano/Theano/pull/5267","diff_url":"https://github.com/Theano/Theano/pull/5267.diff","patch_url":"https://github.com/Theano/Theano/pull/5267.patch"},"body":"I don't know if this is a known problem, but I couldn't find an existing issue.\r\n\r\nThis [comment](https://github.com/fchollet/keras/blob/94fba3d8f05c65799e21198f845051f82b30416d/keras/layers/convolutional.py#L515-L527) in documentation for the Keras Deconvolution2D layer surprised me, because it suggests that the output shape of Theano `AbstractConv_gradInput` might depend on whether it runs on the GPU or the CPU. This is also discussed in fchollet/keras#3824.\r\n\r\nThe problem seems to be that if you set `border_mode='half'` and use an odd filter size, the result of `AbstractConv_gradInput` is not clearly defined. It works fine if you give it a gradient tensor that has the same size that you would get from the forward convolution, but if you give it a gradient tensor of a different size the results depend on the implementation. The CorrMM implementations give a different result than the cuDNN function.\r\n\r\nThese tests illustrate the problem. They fail because the cuDNN results do not match those of the reference implementation. Running them in DebugMode gives an optimization error.\r\n\r\nI'm not sure how this problem should be solved, because changing the existing Theano implementations perhaps is not a good idea. However, it is also awkward that the results depend on the environment."},"comment":{"url":"https://api.github.com/repos/Theano/Theano/issues/comments/263020776","html_url":"https://github.com/Theano/Theano/pull/5267#issuecomment-263020776","issue_url":"https://api.github.com/repos/Theano/Theano/issues/5267","id":263020776,"user":{"login":"gvtulder","id":31510,"avatar_url":"https://avatars.githubusercontent.com/u/31510?v=3","gravatar_id":"","url":"https://api.github.com/users/gvtulder","html_url":"https://github.com/gvtulder","followers_url":"https://api.github.com/users/gvtulder/followers","following_url":"https://api.github.com/users/gvtulder/following{/other_user}","gists_url":"https://api.github.com/users/gvtulder/gists{/gist_id}","starred_url":"https://api.github.com/users/gvtulder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gvtulder/subscriptions","organizations_url":"https://api.github.com/users/gvtulder/orgs","repos_url":"https://api.github.com/users/gvtulder/repos","events_url":"https://api.github.com/users/gvtulder/events{/privacy}","received_events_url":"https://api.github.com/users/gvtulder/received_events","type":"User","site_admin":false},"created_at":"2016-11-25T20:46:13Z","updated_at":"2016-11-25T20:46:13Z","body":"Yes, Travis should fail. These are still the initial tests that only check if the shapes are the same. They don't test for the exceptions I've introduced. I have a new test for those, but I haven't added that yet."}}
{"actor":{"display_login":"gvtulder"}}