{"id":17157686,"url":"https://github.com/andi611/dqn-deep-q-network-atari-breakout-tensorflow","last_synced_at":"2025-07-15T10:09:42.213Z","repository":{"id":40659874,"uuid":"158180479","full_name":"andi611/DQN-Deep-Q-Network-Atari-Breakout-Tensorflow","owner":"andi611","description":"Training a vision-based agent with the Deep Q Learning Network (DQN) in Atari's Breakout environment, implementation in Tensorflow.","archived":false,"fork":false,"pushed_at":"2018-12-12T08:18:20.000Z","size":52756,"stargazers_count":16,"open_issues_count":1,"forks_count":8,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T13:38:46.480Z","etag":null,"topics":["agent","atari","atari-breakout","breakout","deep-q-learning","deep-q-learning-network","deep-q-network","deep-qlearning-algorithm","deep-qnetworks","dqn","mlds","mlds17-machine-learning-course","mlds2018spring","openai-gym","openai-gym-agents","openai-gym-environments","openai-gym-solutions","reinforcement-learning","tensorflow","tensorflow-models"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/andi611.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-11-19T07:36:24.000Z","updated_at":"2025-03-21T16:07:54.000Z","dependencies_parsed_at":"2022-08-29T15:41:50.649Z","dependency_job_id":null,"html_url":"https://github.com/andi611/DQN-Deep-Q-Network-Atari-Breakout-Tensorflow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/andi611/DQN-Deep-Q-Network-Atari-Breakout-Tensorflow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andi611%2FDQN-Deep-Q-Network-Atari-Breakout-Tensorflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andi611%2FDQN-Deep-Q-Network-Atari-Breakout-Tensorflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andi611%2FDQN-Deep-Q-Network-Atari-Breakout-Tensorflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andi611%2FDQN-Deep-Q-Network-Atari-Breakout-Tensorflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/andi611","download_url":"https://codeload.github.com/andi611/DQN-Deep-Q-Network-Atari-Breakout-Tensorflow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/andi611%2FDQN-Deep-Q-Network-Atari-Breakout-Tensorflow/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265427591,"owners_count":23763356,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","atari","atari-breakout","breakout","deep-q-learning","deep-q-learning-network","deep-q-network","deep-qlearning-algorithm","deep-qnetworks","dqn","mlds","mlds17-machine-learning-course","mlds2018spring","openai-gym","openai-gym-agents","openai-gym-environments","openai-gym-solutions","reinforcement-learning","tensorflow","tensorflow-models"],"created_at":"2024-10-14T22:09:34.176Z","updated_at":"2025-07-15T10:09:42.076Z","avatar_url":"https://github.com/andi611.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Reinforcement Learning: Deeq Q Learning Network (DQN) Agent playing Atari Breakout\n* Training a vision-based agent with the Deep Q Learning Network (DQN) in Atari's Breakout environment, implementation in Tensorflow.\n\u003cimg src=\"https://github.com/andi611/Reinforcement-Learning-DQN-Deep-Q-Learning-Atari-Breakout/blob/master/model/gameplay.gif\" width=\"329\" height=\"478\"\u003e\n\n## Environment\n* **\u003c Python 3.7 \u003e**\n* **\u003c [OpenAI Gym](https://github.com/openai/gym) \u003e**\n\t- Install the OpenAI Gym Atari environment:\n\t`$ pip3 install opencv-python gym \"gym[atari]\"`\n\t- Atari environment used: `BreakoutNoFrameskip-v4`\n* **\u003c [Tensorflow r.1.12.0](https://www.tensorflow.org/) \u003e**\n\n## Implementation\n* Deep Q Learning Network with the following improvements:\n\t- **Experience Replay**\n\t- **Fixed Target Q-Network**\n\t- **TD error loss function** with: *Q\u003csub\u003etarget\u003c/sub\u003e = reward + (1-terminal) * (gamma * Q\u003csub\u003emax\u003c/sub\u003e(s’)\u2028)*\n* DQN network Settings (in agent_dqn.py):\n![](https://github.com/andi611/Reinforcement-Learning-DQN-Deep-Q-Learning-Atari-Breakout/blob/master/model/dqn_best_setting.png)\n\n## File Description\n```\n.\n├── ./\n|   ├── agent_dqn.py ─────────── DQN model\n|   ├── atari_wrapper.py ─────── Atari wrapper\n|   ├── environment.py ───────── Gym wrapper\n|   ├── runner.py ────────────── Main program for training and testing\n|   └── Readme.md ────────────── This file\n└── model/\n\t├── dqn_learning_curve_compare.png ──────── Figure 1  \n\t├── dqn_best_setting.png ────────────────── Figure 2\n\t├── dqn_learning_curve.png ──────────────── Figure 3\n\t├── checkpoint ──────────────────────────── Tensorflow model check point\n\t├── model_dqn-25581.data-00000-of-00001 ─── Tensorflow model data\n\t├── model_dqn-25581.meta ────────────────── Tensorflow model meta\n\t└── model_dqn-25581.index ───────────────── Tensorflow model index\n```\n\n## Usage\n* Traing the DQN Agent: `$ python3 runner.py --train_dqn`\n* Testing the DQN Agent: `$ python3 runner.py --test_dqn`\n* Testing the DQN Agent with **gameplay rendering**: `$ python3 runner.py --test_dqn --do_render`\n\n## Learning Curve\n* Single learning curve:\n![](https://github.com/andi611/Reinforcement-Learning-DQN-Deep-Q-Learning-Atari-Breakout/blob/master/model/dqn_learning_curve.png)\n* With different plotting window:\n![](https://github.com/andi611/Reinforcement-Learning-DQN-Deep-Q-Learning-Atari-Breakout/blob/master/model/dqn_learning_curve_compare.png)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandi611%2Fdqn-deep-q-network-atari-breakout-tensorflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fandi611%2Fdqn-deep-q-network-atari-breakout-tensorflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fandi611%2Fdqn-deep-q-network-atari-breakout-tensorflow/lists"}