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

tf-encrypt的Python项目详细描述


tf加密

StatusLicensePyPICircleCI BadgeDocumentation

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

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

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

有关更多background material的信息,请参见下面的内容,或者访问documentation以了解有关如何使用库的更多信息。

该项目在最初的实现之后,得益于几个贡献者的努力,其中最显著的是Dropout LabsOpenMined社区的成员。有关进一步的details,请参见下文。

安装和使用

tf encrypted作为支持python 3.5+的PyPI包提供,可以使用pip:

$ pip install tf-encrypted

下面是使用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())

有关更多信息,请查看documentation中的完整入门指南。

背景和进一步阅读

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

项目状态

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

已知限制

  • TensorFlow的网络子系统的元素似乎没有对恶意用户进行足够的强化。代理或其他访问过滤手段可能足以减轻这一点。
  • tensorflow中提供的伪随机生成器在密码上不强。自定义操作可以很容易地用来解决这个问题。

贡献

不要犹豫发送一个请求,打开一个问题,或寻求帮助!

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

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

  • Dropout Labs继续赞助大量的研究和工程
  • OpenMined是他为最初的想法奠定了基础,并继续支持讨论和指导

许可证

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

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

推荐PyPI第三方库


热门话题
java Requestcontextholder在spring 4中具有并发访问权限。IBMWebSphere上的x Web应用程序?   java如何下载、设置和使用Eclipse?   java如何组合这些mysql语句   java JDBC无法连接到openshift上的mysql数据库   如果存在允许正确处理的重载,java对于方便的方法来说是否可行?   使用hibernate序列的java Spring MVC不存在   具有路径的java Selenium ChromeDriver负载扩展问题   读一本书。java中的java文件   退出队列时,Java队列程序结果为空   Java lambda返回带有重复代码问题的列表   java使用意图从其他活动传递数据并在listview中显示   java如何在java中创建JSON输出   java Android:在不破坏或暂停活动的情况下关闭显示   支持Android电视和手机的java多apk   关于Java应用程序测试和调试的一组问题   如何在JavaSE中使用jdbcRealmShiro进行授权   在java中是否有一个无异常检查的URL解析实用程序?   当页面上有多个相同类型的元素时,java会选择一个特定的元素   递归需要帮助发现java代码中的缺陷