{"action":"created","issue":{"url":"https://api.github.com/repos/Lasagne/Lasagne/issues/531","labels_url":"https://api.github.com/repos/Lasagne/Lasagne/issues/531/labels{/name}","comments_url":"https://api.github.com/repos/Lasagne/Lasagne/issues/531/comments","events_url":"https://api.github.com/repos/Lasagne/Lasagne/issues/531/events","html_url":"https://github.com/Lasagne/Lasagne/issues/531","id":121675163,"number":531,"title":"Residual learning","user":{"login":"kshmelkov","id":10819534,"avatar_url":"https://avatars.githubusercontent.com/u/10819534?v=3","gravatar_id":"","url":"https://api.github.com/users/kshmelkov","html_url":"https://github.com/kshmelkov","followers_url":"https://api.github.com/users/kshmelkov/followers","following_url":"https://api.github.com/users/kshmelkov/following{/other_user}","gists_url":"https://api.github.com/users/kshmelkov/gists{/gist_id}","starred_url":"https://api.github.com/users/kshmelkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kshmelkov/subscriptions","organizations_url":"https://api.github.com/users/kshmelkov/orgs","repos_url":"https://api.github.com/users/kshmelkov/repos","events_url":"https://api.github.com/users/kshmelkov/events{/privacy}","received_events_url":"https://api.github.com/users/kshmelkov/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":7,"created_at":"2015-12-11T09:56:14Z","updated_at":"2015-12-11T19:33:49Z","closed_at":null,"body":"I have just read MSR report on winning ImageNet 152-layers network: http://arxiv.org/abs/1512.03385 I suggest to discuss how to implement residual blocks flexibly in Lasagne. For those who don't have time to read the paper I just write down the key idea: `y = ReLU(BN(F(x) + x))` where `F(x)` is a couple of conv layers (in paper it is `F(x) = conv(ReLU(BN(conv(x)))`). If dimensions of `x` and `F(x)` don't match, just project `x` linearly.\r\n\r\nDo we have a flexible way to manage subnetworks?"},"comment":{"url":"https://api.github.com/repos/Lasagne/Lasagne/issues/comments/164027991","html_url":"https://github.com/Lasagne/Lasagne/issues/531#issuecomment-164027991","issue_url":"https://api.github.com/repos/Lasagne/Lasagne/issues/531","id":164027991,"user":{"login":"kshmelkov","id":10819534,"avatar_url":"https://avatars.githubusercontent.com/u/10819534?v=3","gravatar_id":"","url":"https://api.github.com/users/kshmelkov","html_url":"https://github.com/kshmelkov","followers_url":"https://api.github.com/users/kshmelkov/followers","following_url":"https://api.github.com/users/kshmelkov/following{/other_user}","gists_url":"https://api.github.com/users/kshmelkov/gists{/gist_id}","starred_url":"https://api.github.com/users/kshmelkov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kshmelkov/subscriptions","organizations_url":"https://api.github.com/users/kshmelkov/orgs","repos_url":"https://api.github.com/users/kshmelkov/repos","events_url":"https://api.github.com/users/kshmelkov/events{/privacy}","received_events_url":"https://api.github.com/users/kshmelkov/received_events","type":"User","site_admin":false},"created_at":"2015-12-11T19:33:49Z","updated_at":"2015-12-11T19:33:49Z","body":"Actually I don't have an exact idea in mind how to decouple parametrisation and network topology. I was thinking about proper dispatching arguments in corresponding layers' `**kwargs` (in order to keep together related parameters), but any implementation I think of is very close to network specs like in nolearn. I remember there were some reasons why it isn't implemented in Lasagne in the first place."}}