Comments (13)
cool!
from tf-encrypted.
@snwagh sounds good -- and keep us posted for the C++ code!
from tf-encrypted.
wow, the field of mpc is really evolving. I think this would already be fast enough for some practical applications
from tf-encrypted.
Do you just want to recreate this implementation or also implement others?
from tf-encrypted.
Not sure I follow? The overall idea would be to support several protocols, including two-server SPDZ and SecureNN, and let users easily choose which protocol to use the same way they choose which ML model to use. Eventually find a way to add GC etc as well. There should be good defaults of course.
Something along these lines:
with tfe.protocol.TwoServerSPDZ(server1, server2, crypto_producer):
with tfe.session() as sess:
logreg = tfe.estimator.LogisticClassifier(
session=sess,
num_features=2,
)
although still debating the form and order :)
from tf-encrypted.
@mortendahl, @koenvanderveen I intend to open source the code soon.
from tf-encrypted.
that's great @snwagh! which language/platform did you use? interested in helping porting it to TensorFlow?
from tf-encrypted.
The entire code is in C++.
Porting to TensorFlow sounds fun, though I might have too many commitments for a while. Keep me in the loop and I'll try to contribute however I can.
from tf-encrypted.
any updates on getting the source code out @snwagh?
from tf-encrypted.
Hi @mortendahl, not yet, I was thinking more of three/four weeks time.
from tf-encrypted.
I think we are ready to go ahead and implement this. There was some prototyping done by @jvmancuso and myself. We should be able to OS that code pretty soon but the gist is that we have the protocol implemented in python with numpy.
The plan is to continue developing in secureNN.py as it is setup now, since secureNN is a superset of spdz this seems like a pretty natural decision. We used numpy and all of the functions are vectorized so the translation to TF should be fairly straight forward with a couple caveats:
- We may need new tensor types
The rings used in secureNN do not directly translate to what we are doing via CRT, we will likely need to come up with new mods for each share of the CRT (cc @mortendahl)- We need new types for Z_2^64 as well as Z_2^64-1
- Figure out the smallest tensor type we can use for Z_p (probably int16 because values can temporarily go negative during some ops, so unsigned int8 wouldn't fit them)
It is possible that these caveats would just go away if we have int64 tensors. There was some work done in the TF repo that discovered this may be an artificial boundary that we can just turn off.
from tf-encrypted.
hi @snwagh, just a ping in case you're interested in following along: work on this is now happening in the securenn branch, primarily as a new protocol SecureNN
deriving from Pond
from tf-encrypted.
This is a duplicate of #106, we should consider closing this up!
from tf-encrypted.
Related Issues (20)
- Save and Load ABY3 Model
- Can this framework use encrypted training data to train network models? Are there any relevant cases to learn from? HOT 7
- version 0.8 federation-learning example seems contain an error in validation dataset setting HOT 2
- AssertionError When running Server HOT 2
- Scaling base question HOT 2
- 'NoneType' object has no attribute 'secure_seed' HOT 9
- TypeError: can only concatenate list (not "TensorShapeV1") to list. (An error in sample_seeded_uniform) HOT 2
- In the federated learning of examples, how to protect the DataOwner's gradient? HOT 1
- I can't install TF-Encrypted HOT 1
- Is it possible to evaluate the BaseModel with other keras metrics aside from binary and categorical accuracy? HOT 5
- Trying to better understand the framework beahavior HOT 2
- ValueError: Invalid dtype tf.int16 HOT 2
- why I can see all secret shares in one party? HOT 3
- Can't import tf_encrypted in Colab notebook
- windows install tf-encrypted issue HOT 2
- make: *** [Makefile:322:tf_encrypted/operations/secure_random/secure_random_module_tf_2.13.0.so]; make build error HOT 1
- DepthwiseConv2D output shape bug???
- WAN setting benchmarks. HOT 4
- ImportError: cannot import name 'glob_stateful_parallelism' from 'tensorflow.python.ops.while_v2' HOT 2
- fatal error: tensorflow/core/util/work_sharder.h: No such file or directory #include "tensorflow/core/util/work_sharder.h" HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tf-encrypted.