{ "info": { "author": "Chris Waites", "author_email": "cwaites10@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "
\n
\n

PyVacy: Privacy Algorithms for PyTorch

\n
\n\nPyVacy provides custom PyTorch opimizers for conducting deep learning in a differentially private manner. Basically TensorFlow Privacy, but for PyTorch.\n\n## Getting Started\n\n```bash\npip install pyvacy\n```\n\n## Example Usage\n\n```python\nimport torch\nfrom pyvacy import optim, analysis\n\nmodel = torch.nn.Sequential(...)\n\noptimizer = optim.DPSGD(\n l2_norm_clip=...,\n noise_multiplier=...,\n batch_size=...,\n lr=...,\n momentum=...,\n)\n\nepsilon = analysis.moments_accountant(\n N=...,\n batch_size=...\n noise_multiplier=...,\n epochs=...,\n delta=...,\n)\n\nfor epoch in range(epochs):\n # do training as usual...\n```\n\n## Tutorials\n\n```python\npython tutorials/mnist.py\n\nTraining procedure achieves (3.0, 0.00001)-DP\n[Epoch 1/60] [Batch 0/235] [Loss: 2.321049]\n[Epoch 1/60] [Batch 10/235] [Loss: 0.952795]\n[Epoch 1/60] [Batch 20/235] [Loss: 1.040896]\n...\n```", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/ChrisWaites/pyvacy", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "pyvacy", "package_url": "https://pypi.org/project/pyvacy/", "platform": "", "project_url": "https://pypi.org/project/pyvacy/", "project_urls": { "Homepage": "http://github.com/ChrisWaites/pyvacy" }, "release_url": "https://pypi.org/project/pyvacy/0.0.32/", "requires_dist": null, "requires_python": "", "summary": "Privacy preserving deep learning for PyTorch", "version": "0.0.32" }, "last_serial": 5224040, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "8a1dcdd39b1f3536c3b9696dfba6e3c7", "sha256": "4c6e2b5a1eae8f70102d62ffcb25b6d2a90320ae43641b7a8f77c7f4c48e89c8" }, "downloads": -1, "filename": "pyvacy-0.0.1.tar.gz", "has_sig": false, "md5_digest": "8a1dcdd39b1f3536c3b9696dfba6e3c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7260, "upload_time": "2019-04-04T19:08:52", "url": "https://files.pythonhosted.org/packages/04/9a/e7e0dafa50e5dc7131fe662925132b5fff8bdda164767d45bcde50fe1f8c/pyvacy-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "30df2e70c27585dc141ddeec13a8de9c", "sha256": "88e04ff200d7cfe03668fe526cfea3765b0bdd452964d54f85b840afb3a0f39e" }, "downloads": -1, "filename": "pyvacy-0.0.2.tar.gz", "has_sig": false, "md5_digest": "30df2e70c27585dc141ddeec13a8de9c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10175, "upload_time": "2019-05-03T22:22:24", "url": "https://files.pythonhosted.org/packages/b9/78/bedb059a11f4534bc551f16e833bebe1e32b131214bff29007f71ceb749c/pyvacy-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "577b7e280bd2936a141034682e0aeb2e", "sha256": "026f704c4d4567f0bfe1c43d2544c2ef331bf74ca27d64d92fccfca30aa8afb3" }, "downloads": -1, "filename": "pyvacy-0.0.3.tar.gz", "has_sig": false, "md5_digest": "577b7e280bd2936a141034682e0aeb2e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10134, "upload_time": "2019-05-03T22:24:36", "url": "https://files.pythonhosted.org/packages/9e/64/ae2e7af9516c056aad5c660cc52bc85d668469ebb164c428feaed1ba762a/pyvacy-0.0.3.tar.gz" } ], "0.0.31": [ { "comment_text": "", "digests": { "md5": "3cccb9ff64b472fc20d27833dda88bee", "sha256": "3db21d9baea5e8c4689b84f64522d94a5b910c9e414beffd6f7309ab024a861e" }, "downloads": -1, "filename": "pyvacy-0.0.31-py3-none-any.whl", "has_sig": false, "md5_digest": "3cccb9ff64b472fc20d27833dda88bee", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12385, "upload_time": "2019-05-03T22:40:02", "url": "https://files.pythonhosted.org/packages/23/fb/3e0e346b1fae8c4ccb14951e7111d4892645f1692121407cfefd9cf8b76f/pyvacy-0.0.31-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5545bf3622622970031cf75c1f8849bf", "sha256": "5d92ec08a8a9e05e2261e0d6a4783baf6a48872e9d5bfd5b79032ea7c81bd4a1" }, "downloads": -1, "filename": "pyvacy-0.0.31.tar.gz", "has_sig": false, "md5_digest": "5545bf3622622970031cf75c1f8849bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10334, "upload_time": "2019-05-03T22:40:03", "url": "https://files.pythonhosted.org/packages/55/2f/77735410707c8a0eed3789dfc7eb9ecaf97353cbacd080b9e0987c31592f/pyvacy-0.0.31.tar.gz" } ], "0.0.32": [ { "comment_text": "", "digests": { "md5": "dcd2c0682be7c78fa4316da4a92ae149", "sha256": "50e5242b720cc5ae075041107702231c3447716c39e0b364ee5490300cd87949" }, "downloads": -1, "filename": "pyvacy-0.0.32.tar.gz", "has_sig": false, "md5_digest": "dcd2c0682be7c78fa4316da4a92ae149", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10317, "upload_time": "2019-05-03T22:51:23", "url": "https://files.pythonhosted.org/packages/ae/1d/8dd9852f225d471c4f7248cfd8c01f943c0f968299dd010245b28743ea54/pyvacy-0.0.32.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dcd2c0682be7c78fa4316da4a92ae149", "sha256": "50e5242b720cc5ae075041107702231c3447716c39e0b364ee5490300cd87949" }, "downloads": -1, "filename": "pyvacy-0.0.32.tar.gz", "has_sig": false, "md5_digest": "dcd2c0682be7c78fa4316da4a92ae149", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10317, "upload_time": "2019-05-03T22:51:23", "url": "https://files.pythonhosted.org/packages/ae/1d/8dd9852f225d471c4f7248cfd8c01f943c0f968299dd010245b28743ea54/pyvacy-0.0.32.tar.gz" } ] }