此为我的联邦学习记录贴,如果有问题还希望大家能够及时指正,所有内容都是按照FATE给的案例进行学习的。
安装完环境之后,首先学习的是使用Pipeline进行上传数据。参考FATE/pipeline_tutorial_upload.ipynb at master · FederatedAI/FATE (github.com)
第一步 为了使用Pipeline 我们需要安装fate_client,安装过程如下:
pip install fate_client
接下来验证是否安装成功
pipeline --help
出现以上界面则说明安装成功。
单机部署版本中,FATE Flow Service 默认在127.0.0.1:9380中,我们需要执行他
pipeline init --ip 127.0.0.1 --port 9380
在执行过程中我遇到了一个问题,执行时给我报了权限错误
这是因为我使用的不是root用户,没有访问权限,如果切换到root用户则可以成功执行,另一个比较笨的办法是使用 sudo chmod 777 文件名 将指定的文件的权限。还有就是在一开始进行安装的时候,官方也进行了说明,可以使用root用户给要使用的用户赋予sudo权限。
执行成功回显示以下信息
接下来执行数据上传
我是新建了一个python程序,内容如下所示,这里和文档不同是我的如果不使用 import os 会报错,还有就是要注意,
data_base = "./" 这个要根据你自己文件的所在位置进行更改
from pipeline.backend.pipeline import PipeLine
import os
pipeline_upload = PipeLine().set_initiator(role='guest', party_id=9999).set_roles(guest=9999)
partition = 4
dense_data_guest = {"name": "breast_hetero_guest", "namespace": f"experiment"}
dense_data_host = {"name": "breast_hetero_host", "namespace": f"experiment"}
tag_data = {"name": "breast_hetero_host", "namespace": f"experiment"}
data_base = "./"
pipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_guest.csv"),
table_name=dense_data_guest["name"], # table name
namespace=dense_data_guest["namespace"], # namespace
head=1, partition=partition) # data info
pipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_host.csv"),
table_name=dense_data_host["name"],
namespace=dense_data_host["namespace"],
head=1, partition=partition)
pipeline_upload.add_upload_data(file=os.path.join(data_base, "examples/data/breast_hetero_host.csv"),
table_name=tag_data["name"],
namespace=tag_data["namespace"],
head=1, partition=partition)
pipeline_upload.upload(drop=1)
关于代码内容也很好理解,首先是引用了Pipeline库和os库,并调用了上传函数。
执行成功后,结果显示如下:
大家如果有什么不同的意见可以随时留言一起讨论。有问题也欢迎指正!