微众Fate-横向联邦学习-预测

23 阅读3分钟

dsl.json:与训练时候定义的dsl配置相对应。

runtime_conf.json:与训练时候定义的运行配置相对应。

Model_info.json:模型信息,包括model_id model_verison

train_runtime_conf.json:暂时没有看到相关资料,后续补充

2、编写预测配置文件

=====================================================================

使用文件examples/federatedml-1.x-examples/homo_logistic_regression/test_predict_conf.json

在这里插入图片描述

  1. 发起人:指定发起人的角色和partyID,应与训练过程相同。

  2. job_parameters:

work_mode:单机或者集群,它应与训练过程相同。

model_id \ model_version:##1中获取的信息匹配。

job_type:任务类型。分为train/predict 在这种情况下,它应该是“predict”。

  1. 角色:指出所有角色的所有partyID,应与训练过程相同。

在这里插入图片描述

role_parameters:角色配置,guest使用homo_breast_guest数据进行预测,host使用homo_breast_host进行预测。

由于fate_python容器里面没有编辑软件我们输入以下命令下载一波

apt-get update

apt-get install vim

然后愉快地使用vi/vim命令编辑文件就行了。

3、开始预测

=================================================================

预测的模板命令如下:

python yourfateinstallpath/fateflow/fateflowclient.pyfsubmitjobc{your_fate_install_path}/fate_flow/fate_flow_client.py -f submit_job -c {predict_config}

${your_fate_install_path}: fate安装目录

-c:预测文件配置路径 ${predict_config}

控制台输入以下命令:

python fate_flow/fate_flow_client.py -f submit_job -c examples/federatedml-1.x-examples/homo_logistic_regression/test_predict_conf.json

输出以下结果表示成功:

在这里插入图片描述

4、查看预测结果

===================================================================

通过监控平台以及job_id查看预测情况

总体情况如下:

在这里插入图片描述

点击"view the job" 查看具体情况

先看这个图,这个图我们无法得知各个组件之间的输入输出关系。

在这里插入图片描述

因此我们还是需要看他的dsl,继续##1的查询命令

python fate_flow/fate_flow_client.py -f job_config -j 202002290746181106925 -r guest -p 10000 -o examples/federatedml-1.x-examples/homo_logistic_regression

查看输出目录的dsl.json,找到对应配置如下:

{

"components": {

"dataio_0": {

"CodePath": "federatedml/util/data_io.py/DataIO",

"input": {

"data": {

"data": [

"args.eval_data"

]

},

"model": [

"pipeline.dataio_0.dataio"

]

},

"module": "DataIO",

"output": {

"data": [

"train"

]

}

},

"dataio_1": {

"CodePath": "federatedml/util/data_io.py/DataIO",

"input": {

"data": {

"data": [

"args.eval_data"

]

}

},

"module": "DataIO",

"output": {

"data": [

"eval_data"

]

}

},

"homo_lr_0": {

"CodePath": "federatedml/linear_model/logistic_regression/homo_logsitic_regression/homo_lr_guest.py/HomoLRGuest",

"input": {

"data": {

"eval_data": [

"dataio_0.train"

]

},

"model": [

"pipeline.homo_lr_0.homolr"

]

},

"module": "HomoLR",

"output": {

"data": [

"train"

]

}

},

"homo_lr_1": {

"CodePath": "federatedml/linear_model/logistic_regression/homo_logsitic_regression/homo_lr_guest.py/HomoLRGuest",

"input": {

"data": {

"eval_data": [

"dataio_1.eval_data"

]

},

"model": [

"pipeline.homo_lr_1.homolr"

]

},

"module": "HomoLR",

"output": {

"data": [

"predict"

]

}

}

}

}

查看data_output,对别label与predict_result

在这里插入图片描述

  1. 获取所有预测结果

Fate_board默认查看100条,我们想要获取全部数据可以通过命令行实现。

模板命令如下:

python yourfateinstallpath/fateflow/fateflowclient.pyfcomponentoutputdataj{your_fate_install_path}/fate_flow/fate_flow_client.py -f component_output_data -j {job_id} -p partyidr{party_id} -r {role} -cpn componentnameo{component_name} -o {predict_result_output_dir}

${job_id}: 预测任务ID

在这里插入图片描述

感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的:

① 2000多本Python电子书(主流和经典的书籍应该都有了)

② Python标准库资料(最全中文版)

③ 项目源码(四五十个有趣且经典的练手项目及源码)

④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)

⑤ Python学习路线图(告别不入流的学习)

了解详情:docs.qq.com/doc/DSnl3ZG…