deep-trainer


Namedeep-trainer JSON
Version 0.1.3 PyPI version JSON
download
home_pagehttps://github.com/raphaelreme/deep-trainer
SummaryHelper to train deep neural networks
upload_time2024-02-15 21:22:58
maintainer
docs_urlNone
authorRaphael Reme
requires_python>=3.7
licenseMIT
keywords deep learning pytorch
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # deep-trainer

[![Lint and Test](https://github.com/raphaelreme/deep-trainer/actions/workflows/tests.yml/badge.svg)](https://github.com/raphaelreme/deep-trainer/actions/workflows/tests.yml)

Baseline code to train deep neural networks.
Currently only available for PyTorch Framework.


## Install

### Pip

```bash
$ pip install deep-trainer
```

### Conda

Not yet available


## Getting started

```python
import torch
from deep_trainer import PytorchTrainer


# Datasets
trainset = #....
valset = #....
testset = #....

# Dataloaders
train_loader = torch.utils.data.DataLoader(trainset, 64, shuffle=True)
val_loader = torch.data.utils.DataLoader(valset, 256)
test_loader = torch.data.utils.DataLoader(testset, 256)

# Model & device
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")
model = #....
model.to(device)

# Optimizer & Scheduler
optimizer = torch.optim.Adam(model.parameters(), lr=0.001)
scheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=len(trainset) * 50, 0.1)  # Decay by 10 every 50 epochs

# Criterion
criterion = torch.nn.CrossEntropyLoss()  # For classification for instance

# Training
trainer = PytorchTrainer(model, optimizer, scheduler, save_mode="small", device=device)
trainer.train(150, train_loader, criterion, val_loader=val_loader)

# Testing
trainer.load("experiments/checkpoints/best.ckpt")
trainer.evaluate(test_loader, criterion)
```


## Example

`example/example.py` show how to train a PreActResNet with Deep Trainer.

Install the additional requirements and use it with:

```bash
$ # See hyperparameters available
$ python example.py -h
$
$ # Launch the default training
$ python example.py
$
$ # Once done (or during the training), look for default tensorboard logs
$ tensorboard --logdir experiments/logs/
```

This script is reaching around 94-95% accuracy on validation with Cifar10 and a PreActResNet18.<br>
Here are the [training logs](https://tensorboard.dev/experiment/lYN73lSpSm66bddAswIpOw):


## Build and Deploy

```bash
$ python -m build
$ python -m twine upload dist/*
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/raphaelreme/deep-trainer",
    "name": "deep-trainer",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": "",
    "keywords": "deep learning,pytorch",
    "author": "Raphael Reme",
    "author_email": "raphaelreme-dev@protonmail.com",
    "download_url": "https://files.pythonhosted.org/packages/88/c9/382854740df40e90305e753e88949d4c4698fe61a24ce78891ba4c67760d/deep-trainer-0.1.3.tar.gz",
    "platform": null,
    "description": "# deep-trainer\n\n[![Lint and Test](https://github.com/raphaelreme/deep-trainer/actions/workflows/tests.yml/badge.svg)](https://github.com/raphaelreme/deep-trainer/actions/workflows/tests.yml)\n\nBaseline code to train deep neural networks.\nCurrently only available for PyTorch Framework.\n\n\n## Install\n\n### Pip\n\n```bash\n$ pip install deep-trainer\n```\n\n### Conda\n\nNot yet available\n\n\n## Getting started\n\n```python\nimport torch\nfrom deep_trainer import PytorchTrainer\n\n\n# Datasets\ntrainset = #....\nvalset = #....\ntestset = #....\n\n# Dataloaders\ntrain_loader = torch.utils.data.DataLoader(trainset, 64, shuffle=True)\nval_loader = torch.data.utils.DataLoader(valset, 256)\ntest_loader = torch.data.utils.DataLoader(testset, 256)\n\n# Model & device\ndevice = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\nmodel = #....\nmodel.to(device)\n\n# Optimizer & Scheduler\noptimizer = torch.optim.Adam(model.parameters(), lr=0.001)\nscheduler = torch.optim.lr_scheduler.StepLR(optimizer, step_size=len(trainset) * 50, 0.1)  # Decay by 10 every 50 epochs\n\n# Criterion\ncriterion = torch.nn.CrossEntropyLoss()  # For classification for instance\n\n# Training\ntrainer = PytorchTrainer(model, optimizer, scheduler, save_mode=\"small\", device=device)\ntrainer.train(150, train_loader, criterion, val_loader=val_loader)\n\n# Testing\ntrainer.load(\"experiments/checkpoints/best.ckpt\")\ntrainer.evaluate(test_loader, criterion)\n```\n\n\n## Example\n\n`example/example.py` show how to train a PreActResNet with Deep Trainer.\n\nInstall the additional requirements and use it with:\n\n```bash\n$ # See hyperparameters available\n$ python example.py -h\n$\n$ # Launch the default training\n$ python example.py\n$\n$ # Once done (or during the training), look for default tensorboard logs\n$ tensorboard --logdir experiments/logs/\n```\n\nThis script is reaching around 94-95% accuracy on validation with Cifar10 and a PreActResNet18.<br>\nHere are the [training logs](https://tensorboard.dev/experiment/lYN73lSpSm66bddAswIpOw):\n\n\n## Build and Deploy\n\n```bash\n$ python -m build\n$ python -m twine upload dist/*\n```\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Helper to train deep neural networks",
    "version": "0.1.3",
    "project_urls": {
        "Homepage": "https://github.com/raphaelreme/deep-trainer"
    },
    "split_keywords": [
        "deep learning",
        "pytorch"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "39388808a844f60ca188de9b95e156a1d2d96fd229c1f83e9ed583c8568b9f11",
                "md5": "99666debc6c8a211a8717e9befb7e357",
                "sha256": "046993488db08412a86dbc5481e657dd3bda1c92d7c7cbf5fa216873f54ca905"
            },
            "downloads": -1,
            "filename": "deep_trainer-0.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "99666debc6c8a211a8717e9befb7e357",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 14900,
            "upload_time": "2024-02-15T21:22:56",
            "upload_time_iso_8601": "2024-02-15T21:22:56.824788Z",
            "url": "https://files.pythonhosted.org/packages/39/38/8808a844f60ca188de9b95e156a1d2d96fd229c1f83e9ed583c8568b9f11/deep_trainer-0.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "88c9382854740df40e90305e753e88949d4c4698fe61a24ce78891ba4c67760d",
                "md5": "47b9c2c55c84deec127ccb59aa4e0f54",
                "sha256": "bd28fbd0ec515ccb19caecec6c786648949ebc90839cfcde15bff3ea103c3632"
            },
            "downloads": -1,
            "filename": "deep-trainer-0.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "47b9c2c55c84deec127ccb59aa4e0f54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 14682,
            "upload_time": "2024-02-15T21:22:58",
            "upload_time_iso_8601": "2024-02-15T21:22:58.325016Z",
            "url": "https://files.pythonhosted.org/packages/88/c9/382854740df40e90305e753e88949d4c4698fe61a24ce78891ba4c67760d/deep-trainer-0.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-02-15 21:22:58",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "raphaelreme",
    "github_project": "deep-trainer",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "deep-trainer"
}
        
Elapsed time: 0.19658s