{"action":"created","issue":{"url":"https://api.github.com/repos/bartvm/blocks/issues/137","labels_url":"https://api.github.com/repos/bartvm/blocks/issues/137/labels{/name}","comments_url":"https://api.github.com/repos/bartvm/blocks/issues/137/comments","events_url":"https://api.github.com/repos/bartvm/blocks/issues/137/events","html_url":"https://github.com/bartvm/blocks/pull/137","id":55170385,"number":137,"title":"Markov Chain Example","user":{"login":"rizar","id":654434,"avatar_url":"https://avatars.githubusercontent.com/u/654434?v=3","gravatar_id":"","url":"https://api.github.com/users/rizar","html_url":"https://github.com/rizar","followers_url":"https://api.github.com/users/rizar/followers","following_url":"https://api.github.com/users/rizar/following{/other_user}","gists_url":"https://api.github.com/users/rizar/gists{/gist_id}","starred_url":"https://api.github.com/users/rizar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rizar/subscriptions","organizations_url":"https://api.github.com/users/rizar/orgs","repos_url":"https://api.github.com/users/rizar/repos","events_url":"https://api.github.com/users/rizar/events{/privacy}","received_events_url":"https://api.github.com/users/rizar/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":4,"created_at":"2015-01-22T15:58:09Z","updated_at":"2015-01-22T16:47:56Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/bartvm/blocks/pulls/137","html_url":"https://github.com/bartvm/blocks/pull/137","diff_url":"https://github.com/bartvm/blocks/pull/137.diff","patch_url":"https://github.com/bartvm/blocks/pull/137.patch"},"body":"I ported the markov chain example to use Blocks only. It became so much simpler and convenient to play with! \r\n\r\nIn the process of doing so I also made the following changes:\r\n\r\n* I changed the way `KeyboardInterrupt` is handled. Now the signal is caught and a respective record to the log is made. The main loop finishes training when it comes across such a record. In fact I think that a better and a more flexible way to do this would be to push the respective logic in an extension and add this extension by default. But as we currently do not have an institute of extensions added by default, I put it the main loop so far.\r\n\r\n* Added another callback slot to the extension interface called `on_resumption`.\r\n\r\n* Wrote a small script `continue.py` to continue training. \r\n\r\n* Switched off broken PyLearn2 test."},"comment":{"url":"https://api.github.com/repos/bartvm/blocks/issues/comments/71052614","html_url":"https://github.com/bartvm/blocks/pull/137#issuecomment-71052614","issue_url":"https://api.github.com/repos/bartvm/blocks/issues/137","id":71052614,"user":{"login":"rizar","id":654434,"avatar_url":"https://avatars.githubusercontent.com/u/654434?v=3","gravatar_id":"","url":"https://api.github.com/users/rizar","html_url":"https://github.com/rizar","followers_url":"https://api.github.com/users/rizar/followers","following_url":"https://api.github.com/users/rizar/following{/other_user}","gists_url":"https://api.github.com/users/rizar/gists{/gist_id}","starred_url":"https://api.github.com/users/rizar/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rizar/subscriptions","organizations_url":"https://api.github.com/users/rizar/orgs","repos_url":"https://api.github.com/users/rizar/repos","events_url":"https://api.github.com/users/rizar/events{/privacy}","received_events_url":"https://api.github.com/users/rizar/received_events","type":"User","site_admin":false},"created_at":"2015-01-22T16:47:56Z","updated_at":"2015-01-22T16:47:56Z","body":"`dill.dump` crashes in markov chain example if I don't do this. I know this is weird, but somehow it manages to reach recursion depth above 1000!"}}