在tensorflow之上的一层,用于对加密数据进行机器学习。

tensorflow-encrypted的Python项目详细描述


tf加密

statuslicensepypicircleci badge

tf encrypted是一个python库,它建立在tensorflow之上,供研究人员和实践者实验保护隐私的机器学习。它提供了一个类似于tensorflow的接口,旨在使该技术在不首先成为机器学习、密码学、分布式系统和高性能计算方面的专家的情况下随时可用。

特别是,图书馆的重点是:

  • 易用性:API及其基本设计理念使您能够轻松地开始、使用隐私保护技术,并将其集成到预先存在的机器学习过程中。
  • 可扩展性:该体系结构支持并鼓励对新的密码协议和机器学习算法进行实验和基准测试。
  • 性能:为基于tensor的应用程序进行优化并依赖tensorflow的后端意味着运行时性能可以与专门的独立框架相媲美。
  • 社区:项目的主要目标是推动技术的发展,鼓励合作和开源,而不是专有和封闭的解决方案。
  • 安全性:根据安全性的强概念评估加密协议,并突出显示已知限制。

如需了解更多的背景资料,请参阅下面的,浏览示例,了解如何使用库。

该项目从最初实施后的几个贡献者的努力中获益匪浅,最显著的是辍学实验室和开放社区的成员。有关详细信息,请参见下文。

安装

tf encrypted作为一个包在pypi上提供,pypi支持python 3.5+和tensorflow 1.12.0+,可以使用:

pip3 install tf-encrypted

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

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

后者在尚未编译pip包的平台上很有用,但也需要用于开发。请注意,这将为您提供一个正常工作的基本安装,但要匹配pip包中提供的版本的性能和安全性,还需要一些步骤,请参见安装说明

为1.12.0定制TensorFlow

tf encrypted正式支持tensorflow 1.13.1,但如果您需要在1.12.0上运行,并且希望利用int64 tensor速度的改进,则必须使用自定义版本。

这些构建可用于macoslinux作为一个临时解决方案,直到tensorflow的下一个正式版本(1.13版)发布,但是没有对它们做出任何保证,它们应该被视为pre-alpha。有关更多信息,请参见安装说明

用法

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

importtensorflowastfimporttf_encryptedastfedefprovide_input():# local 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=tfe.define_private_input('input-provider',provide_input)# define computationy=tfe.matmul(x,w)withtfe.Session()assess:# initialize variablessess.run(tfe.global_variables_initializer())# reveal resultresult=sess.run(y.reveal())

有关详细信息,请查看文档示例

背景和进一步阅读

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

项目状态

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

已知限制

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

贡献

不要犹豫发送一个请求,打开一个问题,或寻求帮助!有关更多信息,请查看我们的贡献指南!

几个人已经对这个图书馆的发展产生了影响(按字母顺序排列):

一些公司投入了大量资源:

  • 辍学实验室继续赞助大量的研究和工程
  • openmined是最初想法的孕育地,并继续支持讨论和指导

许可证

在2.0版的apache许可下获得许可(请参见http://www.apache.org/licenses/license-2.0 rel="nofollow">license或http://www.apache.org/licenses/license-2.0)。版权如通知中所述

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

推荐PyPI第三方库


热门话题
java Cancel SQL语句与JDBC   java如何避免线程耗尽   JAVA字符串反转文件io中字符串的顺序   java Datagramsocket:如何接收(…)处理数据包的碎片   为什么通过Javascript访问DOM文档比Java更快?   java在安卓中为从X高度落下的球绘制高度v/s时间图   接收活动的java Android实用程序方法   java如何使用时间线设置按钮的动画?   当getItemCount()大于0时,java JComboBox会显示空白区域   java使用camelbindy或beanio解析keyvalue文本文件   java Ant在中找不到类。它制作的jar文件   java这个XML/XSD有什么问题?   java如何从cookie中获取会话id?