{"action":"created","issue":{"url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/35","labels_url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/35/labels{/name}","comments_url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/35/comments","events_url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/35/events","html_url":"https://github.com/spragunr/deep_q_rl/pull/35","id":101676552,"number":35,"title":"Decoupling to promote reusability","user":{"login":"jleni","id":13698520,"avatar_url":"https://avatars.githubusercontent.com/u/13698520?v=3","gravatar_id":"","url":"https://api.github.com/users/jleni","html_url":"https://github.com/jleni","followers_url":"https://api.github.com/users/jleni/followers","following_url":"https://api.github.com/users/jleni/following{/other_user}","gists_url":"https://api.github.com/users/jleni/gists{/gist_id}","starred_url":"https://api.github.com/users/jleni/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jleni/subscriptions","organizations_url":"https://api.github.com/users/jleni/orgs","repos_url":"https://api.github.com/users/jleni/repos","events_url":"https://api.github.com/users/jleni/events{/privacy}","received_events_url":"https://api.github.com/users/jleni/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2015-08-18T14:58:41Z","updated_at":"2015-08-24T17:13:36Z","closed_at":"2015-08-24T17:13:36Z","pull_request":{"url":"https://api.github.com/repos/spragunr/deep_q_rl/pulls/35","html_url":"https://github.com/spragunr/deep_q_rl/pull/35","diff_url":"https://github.com/spragunr/deep_q_rl/pull/35.diff","patch_url":"https://github.com/spragunr/deep_q_rl/pull/35.patch"},"body":"I know that it is a big PR but as already discussed, we can keep it here as a reference and discuss the details. The key idea is to decouple classes so it is possible to create alternative agents and experiments by composing/deriving from the main implementation.\r\nThere is a very simple example in run_random.py / ale_agent_random.py.\r\ndeep_q_rl could be used as a benchmark to compare new approaches, etc. without having to implement the whole infrastructure again.\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/comments/134304914","html_url":"https://github.com/spragunr/deep_q_rl/pull/35#issuecomment-134304914","issue_url":"https://api.github.com/repos/spragunr/deep_q_rl/issues/35","id":134304914,"user":{"login":"spragunr","id":4982892,"avatar_url":"https://avatars.githubusercontent.com/u/4982892?v=3","gravatar_id":"","url":"https://api.github.com/users/spragunr","html_url":"https://github.com/spragunr","followers_url":"https://api.github.com/users/spragunr/followers","following_url":"https://api.github.com/users/spragunr/following{/other_user}","gists_url":"https://api.github.com/users/spragunr/gists{/gist_id}","starred_url":"https://api.github.com/users/spragunr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spragunr/subscriptions","organizations_url":"https://api.github.com/users/spragunr/orgs","repos_url":"https://api.github.com/users/spragunr/repos","events_url":"https://api.github.com/users/spragunr/events{/privacy}","received_events_url":"https://api.github.com/users/spragunr/received_events","type":"User","site_admin":false},"created_at":"2015-08-24T17:13:36Z","updated_at":"2015-08-24T17:13:36Z","body":"Done."}}