{ "info": { "author": "Omri Bar", "author_email": "baromri@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# pytorch-checkpoint\n\n[![PyPI version](https://badge.fury.io/py/pytorchcheckpoint.svg)](https://badge.fury.io/py/pytorchcheckpoint)\n\n\nThis package supports saving and loading PyTorch training checkpoints. It is useful when trying the resume model training from a previous step, and can become handy when working with spot instances or when trying to reproduce results.\n\nA model is saved not only with its weights, as one might do for later inference, but the entire state of the model, including the optimizer state and parameters.\n\nIn addition, it allows saving metrics and other values generated while training, such as accuracy and loss values. This makes it possible to recreate the learning curves from past values and continue to update them as training proceed.\n\n\n------------------\n\n\n## Prerequisites\nDeveloped with **Python 3.7.3**, but should be compatible with previous Python version.\n```\npip install torch==1.1.0 torchvision==0.3.0\n```\n\n## Installation\n```pip install pytorchcheckpoint```\n\n## Usage\n```python\nfrom pytorchcheckpoint.checkpoint import CheckpointHandler\ncheckpoint_handler = CheckpointHandler()\n```\n\n#### Storing a general value\n```python\ncheckpoint_handler.store_var(var_name='num_of_classes', value=1000)\n```\n#### Reading a general value\n```python\nnum_of_classes = checkpoint_handler.get_var(var_name='num_of_classes')\n```\n\n#### Storing values and metrics for each epoch/iteration. For example, the loss value: \n```python\ncheckpoint_handler.store_running_var(var_name='loss', iteration=0, value=1.0)\ncheckpoint_handler.store_running_var(var_name='loss', iteration=1, value=0.9)\ncheckpoint_handler.store_running_var(var_name='loss', iteration=2, value=0.8)\n```\n\n#### Reading stored values for epoch/iteration\n```python\nloss = checkpoint_handler.get_running_var(var_name='loss', iteration=0)\n```\n\n#### Storing values and metrics per set: train/valid/test for each epoch/iteration. For example, the top1 value of the train and valid sets: \n```python\ncheckpoint_handler.store_running_var_with_header(header='train', var_name='top1', iteration=0, value=80)\ncheckpoint_handler.store_running_var_with_header(header='train', var_name='top1', iteration=1, value=85)\ncheckpoint_handler.store_running_var_with_header(header='train', var_name='top1', iteration=2, value=90)\ncheckpoint_handler.store_running_var_with_header(header='train', var_name='top1', iteration=3, value=91)\n\ncheckpoint_handler.store_running_var_with_header(header='valid', var_name='top1', iteration=0, value=70)\ncheckpoint_handler.store_running_var_with_header(header='valid', var_name='top1', iteration=1, value=75)\ncheckpoint_handler.store_running_var_with_header(header='valid', var_name='top1', iteration=2, value=80)\ncheckpoint_handler.store_running_var_with_header(header='valid', var_name='top1', iteration=3, value=85)\n```\n\n#### Reading stored values per set: train/valid/test for epoch/iteration\n```python\nloss = checkpoint_handler.get_running_var_with_header(header='train', var_name='loss', iteration=0)\n```\n\n#### Save checkpoint:\n```python\nimport torchvision.models as models\nfrom torch import optim\ncheckpoint_handler.store_running_var(var_name='loss', iteration=0, value=1.0)\nmodel = models.resnet18()\noptimizer = optim.SGD(model.parameters(), lr=0.001, momentum=0.9)\npath2save = '/tmp'\ncheckpoint_path = checkpoint_handler.generate_checkpoint_path(path2save=path2save)\ncheckpoint_handler.save_checkpoint(checkpoint_path=checkpoint_path, iteration=25, model=model, optimizer=optimizer)\n```\n\n#### Load checkpoint:\n```python\ncheckpoint_path = ''\ncheckpoint_handler = checkpoint_handler.load_checkpoint(checkpoint_path)\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/bomri/pytorch-checkpoint.git", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pytorchcheckpoint", "package_url": "https://pypi.org/project/pytorchcheckpoint/", "platform": "", "project_url": "https://pypi.org/project/pytorchcheckpoint/", "project_urls": { "Homepage": "https://github.com/bomri/pytorch-checkpoint.git" }, "release_url": "https://pypi.org/project/pytorchcheckpoint/0.0.5/", "requires_dist": null, "requires_python": "", "summary": "Support PyTorch checkpoints", "version": "0.0.5" }, "last_serial": 5336365, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "083a3562e7b4a0d6a45b0c1264e54a52", "sha256": "82de1360518a9955a4d68ffb9cd09e1bf19c4a1c96ae1305b10de787e248752e" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "083a3562e7b4a0d6a45b0c1264e54a52", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2965, "upload_time": "2019-05-23T14:47:21", "url": "https://files.pythonhosted.org/packages/c0/25/a561a47e87e3b4d501d9a97a99c23352b921eae3ca04c48369692f214fd2/pytorchcheckpoint-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dc19d73d8e84efb115da71012343a6f9", "sha256": "9e0d4f2b94ee169873cf27a9300e6241e0a9486838e3bb3d07578d9997bc38bf" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dc19d73d8e84efb115da71012343a6f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2274, "upload_time": "2019-05-23T14:47:24", "url": "https://files.pythonhosted.org/packages/48/40/5dd443af4d12ffb18b4c2bd1b512ebb88b63ef1b8ff4a24b82e2676a43d9/pytorchcheckpoint-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "5ec9f317123797ac3507cff98aa9d8e3", "sha256": "40d9e153400194f2a710e2bfcb427af529b7ff5f7999970e1f635246b2df5fc6" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "5ec9f317123797ac3507cff98aa9d8e3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3874, "upload_time": "2019-05-23T19:45:51", "url": "https://files.pythonhosted.org/packages/85/c9/f9479b03e46fd2690e288d380952c0aae94a8b7c0a5c49d0674cd83108ab/pytorchcheckpoint-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "44f2fe5c0d41c8d842b480c63ec1e453", "sha256": "f0d331e8d6e843f2345f7b93f0c7d877fe6652178b8762ec3c0d21ad319ee876" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.2.tar.gz", "has_sig": false, "md5_digest": "44f2fe5c0d41c8d842b480c63ec1e453", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3160, "upload_time": "2019-05-23T19:45:53", "url": "https://files.pythonhosted.org/packages/44/14/52db4867a9164b7a6f5cba371f345b0117b8fefd561e1d87cf6bdd4a931c/pytorchcheckpoint-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "5c72b591e55f0587bc99b2ecaf41d23c", "sha256": "612f87f22339dc9f34472589887c5664c3013920eb7998610f81e0ac03966475" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5c72b591e55f0587bc99b2ecaf41d23c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4004, "upload_time": "2019-05-26T13:13:31", "url": "https://files.pythonhosted.org/packages/00/2e/985c048817b403e42b260ae2d3072e4fa4e3c5e1185a753be653b700268b/pytorchcheckpoint-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "288ca2b2d9cdc9756aa5eb8d19e41bb3", "sha256": "906cde99289e1d90b92693fc1a578706475760b9026c253b6e4390656bbf37ba" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.3.tar.gz", "has_sig": false, "md5_digest": "288ca2b2d9cdc9756aa5eb8d19e41bb3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3470, "upload_time": "2019-05-26T13:13:33", "url": "https://files.pythonhosted.org/packages/bd/3c/339109730ed8be5084689945595c6c83009fc952d3991fdbfa5c2f6b6c51/pytorchcheckpoint-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "8776b2278d91e69d47c677d2a237e61c", "sha256": "8814a79c9755657a9efeb5daf9077622d963a8cc70af0a4ca3d80fda2833ae30" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "8776b2278d91e69d47c677d2a237e61c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4164, "upload_time": "2019-05-29T08:10:01", "url": "https://files.pythonhosted.org/packages/18/44/8bccd319ef59752c59dd2ee1138d48a7013db28e92240e5145d86c3a2671/pytorchcheckpoint-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6457b4fa7e600ef425920cac3ef460d0", "sha256": "cce94cfc386db3b0ee24a9fc8395b95c140f63c852fbd5c7a9d9709b785e16ae" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.4.tar.gz", "has_sig": false, "md5_digest": "6457b4fa7e600ef425920cac3ef460d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3743, "upload_time": "2019-05-29T08:10:02", "url": "https://files.pythonhosted.org/packages/39/15/c660d1d338fb6143951e0724fa1db3963f7a8dc45f13f70828f64102b8e9/pytorchcheckpoint-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "443bd657b9cede13e92513aed641bd6f", "sha256": "193836b93c61550557f7ebc48bd7fccdd8b74e9268f1f9d8c24abd3bf5afb2ab" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "443bd657b9cede13e92513aed641bd6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4246, "upload_time": "2019-05-30T08:55:33", "url": "https://files.pythonhosted.org/packages/1e/27/d5620c35329772919fdf7e8d30f99f2cc24adc915c2d7d7f4e1dee6ba2af/pytorchcheckpoint-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4429276cfa30ac48cb4ec5e429bd5782", "sha256": "9f5f8736940475d06513bfbd5b9e7724cdaa647a79cb3dc431f3d5d06606064f" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4429276cfa30ac48cb4ec5e429bd5782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3821, "upload_time": "2019-05-30T08:55:35", "url": "https://files.pythonhosted.org/packages/b5/dc/5aa0f499fc0630f36779a847246c0bfcddd6585bddbe0f1107025c558817/pytorchcheckpoint-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "443bd657b9cede13e92513aed641bd6f", "sha256": "193836b93c61550557f7ebc48bd7fccdd8b74e9268f1f9d8c24abd3bf5afb2ab" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "443bd657b9cede13e92513aed641bd6f", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4246, "upload_time": "2019-05-30T08:55:33", "url": "https://files.pythonhosted.org/packages/1e/27/d5620c35329772919fdf7e8d30f99f2cc24adc915c2d7d7f4e1dee6ba2af/pytorchcheckpoint-0.0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4429276cfa30ac48cb4ec5e429bd5782", "sha256": "9f5f8736940475d06513bfbd5b9e7724cdaa647a79cb3dc431f3d5d06606064f" }, "downloads": -1, "filename": "pytorchcheckpoint-0.0.5.tar.gz", "has_sig": false, "md5_digest": "4429276cfa30ac48cb4ec5e429bd5782", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3821, "upload_time": "2019-05-30T08:55:35", "url": "https://files.pythonhosted.org/packages/b5/dc/5aa0f499fc0630f36779a847246c0bfcddd6585bddbe0f1107025c558817/pytorchcheckpoint-0.0.5.tar.gz" } ] }