开源软件名称(OpenSource Name):tf-encrypted/tf-encrypted开源软件地址(OpenSource Url):https://github.com/tf-encrypted/tf-encrypted开源编程语言(OpenSource Language):Python 94.0%开源软件介绍(OpenSource Introduction):TF Encrypted is a framework for encrypted machine learning in TensorFlow. It looks and feels like TensorFlow, taking advantage of the ease-of-use of the Keras API while enabling training and prediction over encrypted data via secure multi-party computation and homomorphic encryption. TF Encrypted aims to make privacy-preserving machine learning readily available, without requiring expertise in cryptography, distributed systems, or high performance computing. See below for more background material, explore the examples, or visit the documentation to learn more about how to use the library. InstallationTF Encrypted is available as a package on PyPI supporting Python 3.5+ and TensorFlow 1.12.0+: pip install tf-encrypted Creating a conda environment to run TF Encrypted code can be done using:
Alternatively, installing from source can be done using: git clone https://github.com/tf-encrypted/tf-encrypted.git
cd tf-encrypted
pip install -e .
make build This latter is useful on platforms for which the pip package has not yet been compiled but is also needed for development. Note that this will get you a working basic installation, yet a few more steps are required to match the performance and security of the version shipped in the pip package, see the installation instructions. UsageThe following is an example of simple matmul on encrypted data using TF Encrypted: import tensorflow as tf
import tf_encrypted as tfe
@tfe.local_computation('input-provider')
def provide_input():
# normal TensorFlow operations can be run locally
# as part of defining a private input, in this
# case on the machine of the input provider
return tf.ones(shape=(5, 10))
# define inputs
w = tfe.define_private_variable(tf.ones(shape=(10,10)))
x = provide_input()
# define computation
y = tfe.matmul(x, w)
with tfe.Session() as sess:
# initialize variables
sess.run(tfe.global_variables_initializer())
# reveal result
result = sess.run(y.reveal()) For more information, check out the documentation or the examples. Roadmap
Background & Further ReadingBlog posts:
Papers:
Presentations:
Other:
Development and ContributionTF Encrypted is open source community project developed under the Apache 2 license and maintained by a set of core developers. We welcome contributions from all individuals and organizations, with further information available in our contribution guide. We invite any organizations interested in partnering with us to reach out via email. Don't hesitate to send a pull request, open an issue, or ask for help! We use ZenHub to plan and track GitHub issues and pull requests. Individual contributionsWe appreciate the efforts of all contributors that have helped make TF Encrypted what it is! Below is a small selection of these, generated by sourcerer.io from most recent stats: Organizational contributionsWe are very grateful for the significant contributions made by the following organizations! Project StatusTF Encrypted is experimental software not currently intended for use in production environments. The focus is on building the underlying primitives and techniques, with some practical security issues postponed for a later stage. However, care is taken to ensure that none of these represent fundamental issues that cannot be fixed as needed. Known limitations
SupportPlease open an issue, or send an email to contact@tf-encrypted.io. LicenseLicensed under Apache License, Version 2.0 (see LICENSE or http://www.apache.org/licenses/LICENSE-2.0). Copyright as specified in NOTICE. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论