{ "info": { "author": "Benoit Martin", "author_email": "benoitmartin88.pro@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# PyTorch trainer\n\n[![CircleCI](https://circleci.com/gh/benoitmartin88/pytorchtrainer/tree/master.svg?style=svg)](https://circleci.com/gh/benoitmartin88/pytorchtrainer/tree/master)\n\nAre you tired of writing those same epoch and data-loader loops to train your PyTorch module ?\nLook no further, PyTorch trainer is a library that hides all those boring training lines of code that should be native to PyTorch. \n\nYou will also benefit from the following features:\n\n- Early stopping: stop training after a period of stagnation\n- Checkpointing: save model and estimator at regular intervals\n- CSV file writer to output logs\n- Several metrics are available: all default PyTorch loss functions, Accuracy, MAE\n- Progress bar from console\n- SIGINT handling: handle CTRL-C\n- Model's data type (`float32`, `float64`) \n\n\n## Example\n\nCode examples can be found in the [example folder](https://github.com/benoitmartin88/pytorchtrainer/tree/master/examples).\n\nHere is a simple example:\n\n``` python\n\nimport torch\nimport pytorchtrainer as ptt\n\n\n# Your usual model, optimizer, loss function and data loaders\nmodel = MyModel()\noptimizer = torch.optim.Adam(self.model.parameters(), lr=1e-3)\ncriterion = torch.nn.MSELoss()\ntrain_loader = MyTrainDataloader()\nvalidation_loader = MyValidationDataloader()\n\n\n# instantiate a default trainer\ntrainer = ptt.create_default_trainer(model, optimizer, criterion)\n\n# optionally save a checkpoint after every 10 epochs\ntrainer.register_post_epoch_callback(ptt.checkpoint.SaveCheckpointCallback(save_every=10))\n\n# optionally compute validation loss after every epoch\nvalidation_callback = ptt.callback.ValidationCallback(validation_loader, ptt.metric.TorchLoss(criterion), validate_every=1)\ntrainer.register_post_epoch_callback(validation_callback)\n\n# optionally save training and validation loss after every iteration using default save directory\ntrainer.register_post_iteration_callback(ptt.callback.CsvWriter(save_every=1,\n extra_header=[validation_callback.state_attribute_name],\n callback=lambda state: [state.get(validation_callback.state_attribute_name)]))\n# run the training\ntrainer.train(train_loader, max_epochs=100)\n\n```\n\n## Dependencies\n\n- python > 3.5\n- pytorch > 1.0.0 (install instructions from the official [PyTorch website](https://pytorch.org/get-started/locally))\n\n\n## Contributing\n\nFeel free to submit an issue or pull request. But before you do please read the [contributing guidelines](CONTRIBUTING.md)\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/benoitmartin88/pytorchtrainer", "keywords": "pytorch trainer", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pytorchtrainer", "package_url": "https://pypi.org/project/pytorchtrainer/", "platform": "", "project_url": "https://pypi.org/project/pytorchtrainer/", "project_urls": { "Bug Reports": "https://github.com/benoitmartin88/pytorchtrainer/issues", "Homepage": "https://github.com/benoitmartin88/pytorchtrainer", "Source": "https://github.com/benoitmartin88/pytorchtrainer" }, "release_url": "https://pypi.org/project/pytorchtrainer/0.2.1/", "requires_dist": [ "torch (>=1.0.0)" ], "requires_python": ">=3.5", "summary": "PyTorch module trainer", "version": "0.2.1" }, "last_serial": 5955444, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fc7e1ca706fe5a3ca18ddba4bab57c48", "sha256": "d4fb87f011209bfde97b75f1b086ef8b7272b13a61f016e3861a8a24e60e650b" }, "downloads": -1, "filename": "pytorchtrainer-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fc7e1ca706fe5a3ca18ddba4bab57c48", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 14676, "upload_time": "2019-09-16T10:06:24", "url": "https://files.pythonhosted.org/packages/df/3e/5d3101cb3436a5c64fa224cd586e3ce8e89148cf30257fd678ea4c35742d/pytorchtrainer-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a944f333bdf90117573eada8e80a8796", "sha256": "e7ac6e037afc32805370b9113016f588155de8f80582438d40b52408bea05fd0" }, "downloads": -1, "filename": "pytorchtrainer-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a944f333bdf90117573eada8e80a8796", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11548, "upload_time": "2019-09-16T10:06:26", "url": "https://files.pythonhosted.org/packages/e9/5e/11decc1171256fcb303d32406ab033b63817f73156d78ec532638b3661de/pytorchtrainer-0.1.0.tar.gz" } ], "0.1.0rc1": [ { "comment_text": "", "digests": { "md5": "8341aee43f2970bace70c93c225211e0", "sha256": "68ec758c8afd381617d03df7219305e6c004bf5944c67552d713b2bebd4d884d" }, "downloads": -1, "filename": "pytorchtrainer-0.1.0rc1-py3-none-any.whl", "has_sig": false, "md5_digest": "8341aee43f2970bace70c93c225211e0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 14584, "upload_time": "2019-06-28T12:51:22", "url": "https://files.pythonhosted.org/packages/ec/6e/a35ad4244ed5e06622a25e367d49fc15be624098107613615ad800ee9cd7/pytorchtrainer-0.1.0rc1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e478b939be9393822f066fd53f210da1", "sha256": "e0ef28ac51a453d4e0dfa13fb7a710113f4065ea2a0e297e0f53c39641040484" }, "downloads": -1, "filename": "pytorchtrainer-0.1.0rc1.tar.gz", "has_sig": false, "md5_digest": "e478b939be9393822f066fd53f210da1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 11062, "upload_time": "2019-06-28T12:51:24", "url": "https://files.pythonhosted.org/packages/7f/16/280b1d7b245d1073f712e548da589c5990023a284f4b022d930457f32d37/pytorchtrainer-0.1.0rc1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "c471762b500bfe50287c9218997d763d", "sha256": "f378ab856c9003a39141664dbed3d9e0a3523b45e7a156305cec3bc776da60b8" }, "downloads": -1, "filename": "pytorchtrainer-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c471762b500bfe50287c9218997d763d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 15290, "upload_time": "2019-09-20T08:49:59", "url": "https://files.pythonhosted.org/packages/e3/01/176481a56ad7898844fb2738718633bbe1b64c92f5e1c95fa6ca84f4bb24/pytorchtrainer-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "469547bdb2cedc3faf0499a375a954f6", "sha256": "1431219b2f8f12e3ee3b40093f81fe2a594e9242a4d7cc08e594c20911623cdb" }, "downloads": -1, "filename": "pytorchtrainer-0.2.0.tar.gz", "has_sig": false, "md5_digest": "469547bdb2cedc3faf0499a375a954f6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 12420, "upload_time": "2019-09-20T08:50:00", "url": "https://files.pythonhosted.org/packages/47/2d/58af64f2c7ca71c7794bb64c4295f91661679106cdc4f05b9428f4baacc0/pytorchtrainer-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "c45c019325f8659e2fef8f4dd68a52ed", "sha256": "92b9319e9be77d801e31448f1b243fa7b9183b4babd170679de80271391d44a1" }, "downloads": -1, "filename": "pytorchtrainer-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c45c019325f8659e2fef8f4dd68a52ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 15297, "upload_time": "2019-10-10T15:16:03", "url": "https://files.pythonhosted.org/packages/fd/15/a213a07abd20f3f9063b16dcf50793e7823a963b75495132787fab4d5a28/pytorchtrainer-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f6b621e1c5dc10a3e817f0f1b41bfde", "sha256": "28821a04052fe527d6a770e5cdb9eb70f31302c3a6e726bd7533c76c140fb47c" }, "downloads": -1, "filename": "pytorchtrainer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9f6b621e1c5dc10a3e817f0f1b41bfde", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13973, "upload_time": "2019-10-10T15:16:05", "url": "https://files.pythonhosted.org/packages/72/8c/8c60ea5a271da20463c08a2df382371107f52be5b69a21c07b3eb063c6f8/pytorchtrainer-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c45c019325f8659e2fef8f4dd68a52ed", "sha256": "92b9319e9be77d801e31448f1b243fa7b9183b4babd170679de80271391d44a1" }, "downloads": -1, "filename": "pytorchtrainer-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "c45c019325f8659e2fef8f4dd68a52ed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.5", "size": 15297, "upload_time": "2019-10-10T15:16:03", "url": "https://files.pythonhosted.org/packages/fd/15/a213a07abd20f3f9063b16dcf50793e7823a963b75495132787fab4d5a28/pytorchtrainer-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9f6b621e1c5dc10a3e817f0f1b41bfde", "sha256": "28821a04052fe527d6a770e5cdb9eb70f31302c3a6e726bd7533c76c140fb47c" }, "downloads": -1, "filename": "pytorchtrainer-0.2.1.tar.gz", "has_sig": false, "md5_digest": "9f6b621e1c5dc10a3e817f0f1b41bfde", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.5", "size": 13973, "upload_time": "2019-10-10T15:16:05", "url": "https://files.pythonhosted.org/packages/72/8c/8c60ea5a271da20463c08a2df382371107f52be5b69a21c07b3eb063c6f8/pytorchtrainer-0.2.1.tar.gz" } ] }