deepqlearn


Namedeepqlearn JSON
Version 0.1.1 PyPI version JSON
download
home_pageNone
SummaryA simple Deep Q-Network implementation in PyTorch
upload_time2025-08-14 10:15:42
maintainerNone
docs_urlNone
authorPrathamesh Jadhav
requires_python>=3.8
licenseMIT
keywords deep q network dqn reinforcement learning
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            Got it β€” you want **one single markdown block** containing the entire README from title to author so you can copy it in one click.

Here’s your complete README:

````markdown
# DeepQlearn

A simple and clean **Deep Q-Network (DQN)** implementation in PyTorch, packaged for easy installation via PyPI.

---

## ✨ Features
- Minimal, readable code for learning DQN fundamentals
- Works with any [Gym](https://www.gymlibrary.dev/) environment
- Epsilon-greedy exploration strategy
- Replay buffer for experience sampling
- Target network updates for stable training
- Implemented in [PyTorch](https://pytorch.org)

---

## πŸ“¦ Installation

```bash
pip install deepqlearn
````

## Requirements:

```bash
Python >= 3.8
PyTorch
Gym
```

---

## πŸš€ Quick Start

```python
from deepqlearn import train_dqn

# Train on CartPole for 200 episodes
train_dqn(episodes=200)
```

---

## πŸ“š API Reference

### `train_dqn(episodes=500, batch_size=64, target_update=10)`

Train a DQN agent on `CartPole-v1`.

**Parameters:**

* `episodes` *(int)* β†’ Number of episodes to train for
* `batch_size` *(int)* β†’ Mini-batch size for replay
* `target_update` *(int)* β†’ Frequency (in episodes) to update the target network

---

### `DQNAgent`

A reinforcement learning agent using Deep Q-Learning.

**Constructor:**

```python
DQNAgent(
    state_dim,
    action_dim,
    lr=1e-3,
    gamma=0.99,
    epsilon=1.0,
    epsilon_min=0.01,
    epsilon_decay=0.995
)
```

**Key Methods:**

* `act(state)` β†’ Choose an action given a state
* `remember(state, action, reward, next_state, done)` β†’ Store experience in replay buffer
* `replay(batch_size)` β†’ Train from replay buffer
* `update_target()` β†’ Update target network with policy weights

---

## πŸ“ Example Training Script

```python
import gym
from deepqlearn import DQNAgent

env = gym.make("CartPole-v1")
agent = DQNAgent(env.observation_space.shape[0], env.action_space.n)

for episode in range(100):
    state = env.reset()[0]
    done = False
    total_reward = 0
    while not done:
        action = agent.act(state)
        next_state, reward, done, _, _ = env.step(action)
        agent.remember(state, action, reward, next_state, done)
        agent.replay(batch_size=64)
        state = next_state
        total_reward += reward
    agent.update_target()
    print(f"Episode {episode} β€” Reward: {total_reward}")

env.close()
```

---

## πŸ“‚ Project Structure

```bash
deepqlearn/
β”‚
β”œβ”€β”€ src/
β”‚   └── deepqlearn/
β”‚       β”œβ”€β”€ __init__.py
β”‚       β”œβ”€β”€ agent.py
β”‚       β”œβ”€β”€ network.py
β”‚       β”œβ”€β”€ replay_buffer.py
β”‚       β”œβ”€β”€ train.py
β”‚
β”œβ”€β”€ pyproject.toml
β”œβ”€β”€ setup.cfg
β”œβ”€β”€ README.md
β”œβ”€β”€ LICENSE
└── .gitignore
```

---

## βš– License

MIT License

---

## πŸ‘€ Author

Prathamesh Jadhav


            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "deepqlearn",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "deep q network, dqn, reinforcement learning",
    "author": "Prathamesh Jadhav",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/f0/5d/8645a9481e8f44c3fc1eedd3f80966e516dfd610f295dd399fb6aa1c5e91/deepqlearn-0.1.1.tar.gz",
    "platform": null,
    "description": "Got it \u2014 you want **one single markdown block** containing the entire README from title to author so you can copy it in one click.\n\nHere\u2019s your complete README:\n\n````markdown\n# DeepQlearn\n\nA simple and clean **Deep Q-Network (DQN)** implementation in PyTorch, packaged for easy installation via PyPI.\n\n---\n\n## \u2728 Features\n- Minimal, readable code for learning DQN fundamentals\n- Works with any [Gym](https://www.gymlibrary.dev/) environment\n- Epsilon-greedy exploration strategy\n- Replay buffer for experience sampling\n- Target network updates for stable training\n- Implemented in [PyTorch](https://pytorch.org)\n\n---\n\n## \ud83d\udce6 Installation\n\n```bash\npip install deepqlearn\n````\n\n## Requirements:\n\n```bash\nPython >= 3.8\nPyTorch\nGym\n```\n\n---\n\n## \ud83d\ude80 Quick Start\n\n```python\nfrom deepqlearn import train_dqn\n\n# Train on CartPole for 200 episodes\ntrain_dqn(episodes=200)\n```\n\n---\n\n## \ud83d\udcda API Reference\n\n### `train_dqn(episodes=500, batch_size=64, target_update=10)`\n\nTrain a DQN agent on `CartPole-v1`.\n\n**Parameters:**\n\n* `episodes` *(int)* \u2192 Number of episodes to train for\n* `batch_size` *(int)* \u2192 Mini-batch size for replay\n* `target_update` *(int)* \u2192 Frequency (in episodes) to update the target network\n\n---\n\n### `DQNAgent`\n\nA reinforcement learning agent using Deep Q-Learning.\n\n**Constructor:**\n\n```python\nDQNAgent(\n    state_dim,\n    action_dim,\n    lr=1e-3,\n    gamma=0.99,\n    epsilon=1.0,\n    epsilon_min=0.01,\n    epsilon_decay=0.995\n)\n```\n\n**Key Methods:**\n\n* `act(state)` \u2192 Choose an action given a state\n* `remember(state, action, reward, next_state, done)` \u2192 Store experience in replay buffer\n* `replay(batch_size)` \u2192 Train from replay buffer\n* `update_target()` \u2192 Update target network with policy weights\n\n---\n\n## \ud83d\udcdd Example Training Script\n\n```python\nimport gym\nfrom deepqlearn import DQNAgent\n\nenv = gym.make(\"CartPole-v1\")\nagent = DQNAgent(env.observation_space.shape[0], env.action_space.n)\n\nfor episode in range(100):\n    state = env.reset()[0]\n    done = False\n    total_reward = 0\n    while not done:\n        action = agent.act(state)\n        next_state, reward, done, _, _ = env.step(action)\n        agent.remember(state, action, reward, next_state, done)\n        agent.replay(batch_size=64)\n        state = next_state\n        total_reward += reward\n    agent.update_target()\n    print(f\"Episode {episode} \u2014 Reward: {total_reward}\")\n\nenv.close()\n```\n\n---\n\n## \ud83d\udcc2 Project Structure\n\n```bash\ndeepqlearn/\n\u2502\n\u251c\u2500\u2500 src/\n\u2502   \u2514\u2500\u2500 deepqlearn/\n\u2502       \u251c\u2500\u2500 __init__.py\n\u2502       \u251c\u2500\u2500 agent.py\n\u2502       \u251c\u2500\u2500 network.py\n\u2502       \u251c\u2500\u2500 replay_buffer.py\n\u2502       \u251c\u2500\u2500 train.py\n\u2502\n\u251c\u2500\u2500 pyproject.toml\n\u251c\u2500\u2500 setup.cfg\n\u251c\u2500\u2500 README.md\n\u251c\u2500\u2500 LICENSE\n\u2514\u2500\u2500 .gitignore\n```\n\n---\n\n## \u2696 License\n\nMIT License\n\n---\n\n## \ud83d\udc64 Author\n\nPrathamesh Jadhav\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A simple Deep Q-Network implementation in PyTorch",
    "version": "0.1.1",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/deepqlearn",
        "Issues": "https://github.com/yourusername/deepqlearn/issues"
    },
    "split_keywords": [
        "deep q network",
        " dqn",
        " reinforcement learning"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "591145a69fb1169a25de9a0285db818d2ce6cd9e1b7652764b6c53c3d9ea0c74",
                "md5": "fbd43ccbef62823e925e878e41b0dbfd",
                "sha256": "89de6d110825de9d533c1fb581cc00a77c4f3d67d9d5ee885607765369e80d38"
            },
            "downloads": -1,
            "filename": "deepqlearn-0.1.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "fbd43ccbef62823e925e878e41b0dbfd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 5563,
            "upload_time": "2025-08-14T10:15:41",
            "upload_time_iso_8601": "2025-08-14T10:15:41.057134Z",
            "url": "https://files.pythonhosted.org/packages/59/11/45a69fb1169a25de9a0285db818d2ce6cd9e1b7652764b6c53c3d9ea0c74/deepqlearn-0.1.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f05d8645a9481e8f44c3fc1eedd3f80966e516dfd610f295dd399fb6aa1c5e91",
                "md5": "5ae38e41a8d8b9b9fd48b4cc17bedbc9",
                "sha256": "611f9c6cad55b42cb477331267c31365bc102b5783d76620b30e1eef826c7965"
            },
            "downloads": -1,
            "filename": "deepqlearn-0.1.1.tar.gz",
            "has_sig": false,
            "md5_digest": "5ae38e41a8d8b9b9fd48b4cc17bedbc9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 3952,
            "upload_time": "2025-08-14T10:15:42",
            "upload_time_iso_8601": "2025-08-14T10:15:42.468293Z",
            "url": "https://files.pythonhosted.org/packages/f0/5d/8645a9481e8f44c3fc1eedd3f80966e516dfd610f295dd399fb6aa1c5e91/deepqlearn-0.1.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-14 10:15:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "deepqlearn",
    "github_not_found": true,
    "lcname": "deepqlearn"
}
        
Elapsed time: 0.69507s