加密数据的机器学习框架。

tf-encrypted的Python项目详细描述


tf encrypted是tensorflow中一个用于加密机器学习的框架。它看起来和感觉像tensorflow,利用keras api的易用性,同时通过安全的多方计算和同态加密实现对加密数据的训练和预测。tf encrypted旨在使隐私保护机器学习变得容易获得,而不需要密码学、分布式系统或高性能计算方面的专业知识。

如需有关background material的详细信息,请参阅下文,浏览examples,或访问documentation以了解有关如何使用库的详细信息。我们也非常欢迎您加入我们的Slack channel来回答有关使用和开发的所有问题。

WebsiteDocumentationPyPICircleCI Badge

安装

tf encrypted作为支持python 3.5+和tensorflow 1.12.0+的PyPI包提供:

pip3 install tf-encrypted

创建conda环境以运行tf加密代码可以使用:

conda create -n tfe python=3.6
conda activate tfe
conda install tensorflow notebook
pip install tf-encrypted

或者,也可以使用以下命令从源安装:

git clone https://github.com/tf-encrypted/tf-encrypted.git
cd tf-encrypted
pip3 install -e .

后者在尚未编译pip包但development也需要pip包的平台上非常有用。请注意,这将为您提供一个有效的基本安装,但是还需要一些步骤来匹配pip包中提供的版本的性能和安全性,请参见installation instructions

用法

下面是使用tf encrypted对加密数据进行简单matmul的示例:

importtensorflowastfimporttf_encryptedastfe@tfe.local_computation('input-provider')defprovide_input():# normal TensorFlow operations can be run locally# as part of defining a private input, in this# case on the machine of the input providerreturntf.ones(shape=(5,10))# define inputsw=tfe.define_private_variable(tf.ones(shape=(10,10)))x=provide_input()# define computationy=tfe.matmul(x,w)withtfe.Session()assess:# initialize variablessess.run(tfe.global_variables_initializer())# reveal resultresult=sess.run(y.reveal())

有关详细信息,请查看documentationexamples

路线图

  • 结合隐私和机器学习的高级api。到目前为止,tf encrypted主要关注其低级接口,但现在是时候弄清楚当隐私进入图片时,它对keras等接口意味着什么了。

  • 与tensorflow的紧密集成。这包括与即将推出的TensorFlow2.0保持一致,以及找出TFEncrypted如何与诸如TF PrivacyTF Federated等相关项目紧密协作。

  • 支持第三方库。虽然tf encrypted有自己的安全计算实现,但是还有其他的excellent libraries可用于安全计算和同态加密。我们想把这些带到船上,为Tensorflow提供一座桥。

背景和进一步阅读

以下文本提供了该项目的进一步深入介绍:

贡献

查看我们的contribution guide了解更多信息,并毫不犹豫地发送拉取请求、打开问题或寻求帮助!你可以通过GitHub或者通过joining我们的Slack channel来实现。

组织贡献

我们非常感谢下列组织所作的重大贡献!

Dropout Labs

项目状态

tf加密是一种实验性软件,目前不打算在生产环境中使用。重点是构建底层的原语和技术,一些实际的安全问题将推迟到稍后的阶段。但是,要注意确保这些问题都不是不能根据需要加以解决的根本问题。

已知限制

  • TensorFlow的网络子系统的元素似乎没有对恶意用户进行足够的强化。代理或其他访问过滤手段可能足以减轻这一点。

支架

请打开issue,直接在Slack上联系,或向contact@tf-encrypted.io发送电子邮件。

许可证

在2.0版apache许可下授权(参见LICENSEhttp://www.apache.org/licenses/LICENSE-2.0)。版权在NOTICE中指定。

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

推荐PyPI第三方库


热门话题
java如何克服带有空值的不可空bean级验证   “此行有多个标记”的authenticateUser上的java MySQLConnection错误   java处理Jackson异常   java Netbeans编辑器如何知道文件在撤消后不会被修改?   目标C相当于Java的ArrayList   java当需要int时,可以将short传递给方法调用吗?   drawString()方法上的java MouseListener   java服务器socket是执行此操作的最佳选项   java需要单个匹配bean,但找到了2:org。springframework。网状物servlet。mvc。方法注释。RequestMappingHandlerMapping   如何在Java中执行Windows命令?   安卓应用程序的java文件主机   java将所有spring引导属性都设置在内。将yml文件转换为系统属性   Java邮件中的html内联链接在邮件客户端中不起作用   Java二进制文件的bazel版本控制   java如何在自定义ListView中使用Intent   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java一次add()调用可以在Solr服务器中索引多少文档?   java如何获取Avro GenericRecord大小