目录
一.介绍
二.代码示例
三.相关文件的介绍
一.介绍
TF Encrypted是TensorFlow中用于加密机器学习的框架,是一个用于安全多方计算(MPC)机器学习的开源框架。它看起来和感觉上都像TensorFlow,利用KerasAPI的易用性,同时通过安全多方计算和同态加密对加密数据进行训练和预测。TF Encrypted旨在使保护隐私的机器学习变得容易,而不需要密码学、分布式系统或高性能计算方面的专业知识。
二.代码示例
假设爱丽丝是银行,鲍勃是政府。Alice和Bob认识许多共同的个人,双方从不同方面了解有关个人的一些信息(例如,Alice了解他们的信用卡账单,而Bob了解他们的税务信息),但只有Bob知道这些个人是否有欺诈历史(由label=1或0表示)。现在Bob想在Alice的帮助下建立一个欺诈检测模型。爱丽丝愿意合作,但她认为她的用户信息敏感的部分,不愿意直接分享。假设数据集包含7000个样本和32个特征,其中16个由Alice持有,另外16个(以及标签)由Bob持有。
GitHub源码? ? ?? ?百度云盘源码,提取码m108
1初始化:
# python3 --version
Python 3.6.9
# pip3 --version
pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)
#pip3 install tensorflow==1.13.2
#pip3 install tf-encrypted
2编辑config文件
{
"alice": "machine1:port1",
"bob": "machine2:port2",
"crypto-producer": "machine3:port3"
}
sudo su
lsof -i:80
只要没有显示使用都可以指定成端口。
3复制文件到相应的机器。
Copy config.json , common.py , training_alice.py , aliceTrainFile.csv to machine1;
Copy config.json , training_bob.py , bobTrainFileWithLabel.csv to machine2;
Copy config.json , training_server.py to machine3;
4对应的机器运行相应的代码
python3 training_bob.py
python3 training_server.py
python3 training_alice.py
三.相关文件的介绍
common.py:里面主要包含模型的定义LogisticRegression,数据预处理DataOwner.provide_data,模型更新和模型预测ModelOwner。
training_bob.py?:根据pond协议提供数据。
training_alice.py:根据pond协议提供数据,定义模型参数。
training_server.py:根据pond协议进行聚合训练。
|