{"action":"created","issue":{"url":"https://api.github.com/repos/dmlc/mxnet/issues/407","labels_url":"https://api.github.com/repos/dmlc/mxnet/issues/407/labels{/name}","comments_url":"https://api.github.com/repos/dmlc/mxnet/issues/407/comments","events_url":"https://api.github.com/repos/dmlc/mxnet/issues/407/events","html_url":"https://github.com/dmlc/mxnet/issues/407","id":113509890,"number":407,"title":"[vote] terminology for training process","user":{"login":"pluskid","id":3542,"avatar_url":"https://avatars.githubusercontent.com/u/3542?v=3","gravatar_id":"","url":"https://api.github.com/users/pluskid","html_url":"https://github.com/pluskid","followers_url":"https://api.github.com/users/pluskid/followers","following_url":"https://api.github.com/users/pluskid/following{/other_user}","gists_url":"https://api.github.com/users/pluskid/gists{/gist_id}","starred_url":"https://api.github.com/users/pluskid/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pluskid/subscriptions","organizations_url":"https://api.github.com/users/pluskid/orgs","repos_url":"https://api.github.com/users/pluskid/repos","events_url":"https://api.github.com/users/pluskid/events{/privacy}","received_events_url":"https://api.github.com/users/pluskid/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/dmlc/mxnet/labels/discussion","name":"discussion","color":"fef2c0"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-10-27T05:34:49Z","updated_at":"2015-10-28T02:25:19Z","closed_at":null,"body":"In the current Python binding, the terminology for some training related terms is a bit inconsistent. Specifically, here we should determine the usage of the term for *one mini-batch* and *one full pass through the data*.\r\n\r\nCurrent status is: `round` and `iteration` mean the same thing -- full path through the data. `epoch` means a single mini-batch. This will affect parameter and callback names, like `start_round`, `epoch_callback`, etc. We should choose a unified (and standard) terminology here before it's getting too late to change names.\r\n\r\nMy personal opinion is that `epoch`, if we ever want to use this name, should mean one full pass through the data. I do not find any \"standard\" reference for this. But looking around, almost all materials I found `epoch` means this. Some examples:\r\n\r\n* [One of Leon Bottou's paper on SGD](http://research.microsoft.com/pubs/192769/tricks-2012.pdf)\r\n* Caffe: they do not have variable or function with `epoch` in it, but from [here](https://github.com/BVLC/caffe/blob/master/src/caffe/proto/caffe.proto#L688), I believe `epoch` means 1 full data pass\r\n* In Theano, [epoch is the outer loop, and batch is the inner loop](http://deeplearning.net/tutorial/gettingstarted.html#early-stopping)\r\n* In Chainer, [epoch is the outer loop](http://docs.chainer.org/en/stable/tutorial/basic.html)\r\n* ...\r\n\r\nPossible vote options (please add more if needed)\r\n\r\n1. `epoch` for full data pass, `iteration` for a single minibatch\r\n2. `data_pass` for full data pass, `iteration` for a single minibatch\r\n3. `round` for full data pass, `iteration` for a single minibatch\r\n4. `epoch` for full data pass, `batch` for a single minibatch"},"comment":{"url":"https://api.github.com/repos/dmlc/mxnet/issues/comments/151701725","html_url":"https://github.com/dmlc/mxnet/issues/407#issuecomment-151701725","issue_url":"https://api.github.com/repos/dmlc/mxnet/issues/407","id":151701725,"user":{"login":"tqchen","id":2577440,"avatar_url":"https://avatars.githubusercontent.com/u/2577440?v=3","gravatar_id":"","url":"https://api.github.com/users/tqchen","html_url":"https://github.com/tqchen","followers_url":"https://api.github.com/users/tqchen/followers","following_url":"https://api.github.com/users/tqchen/following{/other_user}","gists_url":"https://api.github.com/users/tqchen/gists{/gist_id}","starred_url":"https://api.github.com/users/tqchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tqchen/subscriptions","organizations_url":"https://api.github.com/users/tqchen/orgs","repos_url":"https://api.github.com/users/tqchen/repos","events_url":"https://api.github.com/users/tqchen/events{/privacy}","received_events_url":"https://api.github.com/users/tqchen/received_events","type":"User","site_admin":false},"created_at":"2015-10-28T02:25:19Z","updated_at":"2015-10-28T02:25:19Z","body":"Seems 4 it is then. @antinucleon @hetong007  Can you push the change on python and R side respectively?"}}