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

tfencrypt的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第三方库


热门话题
jenkins在java代码的csv中使用前导零传递数字   终止java应用程序javaw。exe eclipse   java平均字长。文本   java在事务中关闭连接时会发生什么?   java如何为rich faces extendedDatatable启用可调整大小的列?   SpringJavaWebApp头nosniff不适合js和css文件   Java:抛出异常   java获取拒绝ArrayList中存在的用户名的代码。   关于编写JNDI服务提供者的java教程   java Android emulator电子书示例已停止   java如何防止双向关系中的循环   在Java中,如何将接口的实现作为变量传递给方法?   java有没有办法通过注释来监听CoreNLP处理的进度?   java Eclipse错误:导入项目时“无法读取项目描述文件”   java为什么findViewById返回null?