训练具有不同隐私的PyTorch模型

opacus的Python项目详细描述


Opacus


CircleCI

Opacus是一个库,它允许使用不同的隐私来训练PyTorch模型。它支持对客户机进行最少代码更改的培训,对培训性能的影响很小,并且允许客户机在线跟踪在任何给定时刻花费的隐私预算。在

目标受众

此代码发布面向两个目标受众:

  1. ML从业者将发现这是一个温和的介绍,以培训一个具有差异隐私的模型,因为它需要最少的代码更改。在
  2. 差异隐私科学家会发现这很容易实验和修补,使他们能够专注于什么是重要的。在

安装

最新版本的Opacus可通过pip安装:

pip install opacus

:warning: NOTE: This will bring in the latest version of our deps, which are on Cuda 10.2. This will not work if you environment is using an older Cuda version (for example, Google Colab is still on Cuda 10.1).

要在Colab上安装,请先运行此单元:

^{pr2}$

然后你就可以像以前一样pip install opacus。{更多内容请参阅a3}。在

您还可以直接从源代码处安装最新功能(以及它的怪癖和潜在的专业错误):

git clone https://github.com/pytorch/opacus.git
cd opacus
pip install -e .

入门

要使用差异隐私来训练模型,只需声明一个PrivacyEngine,并在运行之前将其附加到优化器,例如:

model=Net()optimizer=SGD(model.parameters(),lr=0.05)privacy_engine=PrivacyEngine(model,batch_size,sample_size,alphas=[10,100],noise_multiplier=1.3,max_grad_norm=1.0,)privacy_engine.attach(optimizer)# Now it's business as usual

MNIST example显示使用opacus的端到端运行。examples文件夹包含更多这样的示例。在

常见问题解答

请访问FAQ页面,以获得有关差异隐私和Opacus的一些最常见问题的答案。在

贡献

请参阅CONTRIBUTING文件以获取帮助。在

参考文献

许可证

这段代码是在Apache2.0下发布的,可以在LICENSE文件中找到。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何使用jaxb整理集合?   java改装添加带有令牌和id的标头   Java Webstart在启动应用程序之前停止   mysql将请求主体作为JSON存储到Java数据库中   春天3。从Java 7更新到Java 8后x应用程序不工作   java如何为我的mock实例化unirest HttpResponse<JsonNode>?   java两个servlet在同一场战争中与两场独立战争中的利弊?   java Mockito验证未失败   GWT中的java文件读取器   java避免代码重复   java谁将设置saml cookie,其中包含凭证信息   java如何修改jar包代码,然后重新导出更新的jar包?   BST数据结构中的java递归差异   java如何从文本文件中读取存储的哈希表?   带有quercus的java php comet   java从SeleniumWebDriver写入json变量   javascript如何在同一个action类中对方法调用action?