FATE使用笔记(草稿可更新)

本文档详细介绍了FATE的fate flow client命令行使用,包括数据上传、任务配置与运行、预测任务的执行。同时,讲解了FATE的Pipeline高级API,展示了如何设计、启动和查询FATE作业,并提供了多个示例脚本。最后,列出了后续学习计划与参考资料。
摘要由CSDN通过智能技术生成


本文基于fate1.6.1

一、fate flow client 命令行使用

1.1上传数据

1.1.1 上传数据配置文件

//upload_data.json
{
    "file": "examples/data/breast_hetero_guest.csv", //所上传的csv数据文件
    "table_name": "hetero_breast_guest",             //存储数据表的表名
    "namespace": "experiment",                       //存储数据表的命名空间
    "head": 1,         // 指定数据文件是否包含表头,1包含,0不包含
    "partition": 8,    // 指定用于存储数据的分区数    ????
    "work_mode": 0,    //指定工作模式,0代表单机版,1代表集群版
    "backend": 0       //指定后端,0代表EGGROLL, 1代表SPARK加RabbitMQ,2代表SPARK加Pulsar
}

1.1.2 上传数据命令

//使用python方式上传数据   (FATE版本1.6.0单机部署,docker:fate)
 python /fate/python/fate_flow/fate_flow_client.py -f upload -c upload_data.json
 
 
//使用fateflow方式上传数据 
//使用fateflow的第一步是先对fateflow进行init
flow init -c /data/projects/fate/python/conf/service_conf.yaml 
或者flow init --ip 127.0.0.1 --port 9380
//上传数据
flow data upload -c upload_data.json --drop  //--drop代表覆盖已上传的同名文件

(不同版本fate_flow_client.py的位置可能不同)

1.2 任务配置和运行配置

版本1.5.0以前的FATE适用V1规则
版本1.5.0以后的FATE适用V2规则,可兼容V1

本章讲training job的配置
通过Flow Client提交conf & dsl来开始training job

1.2.1 DSL 配置文件

xxxx_dsl.json文件
components表示将会使用到的各个模块
每个独立的模块定义在在"components" 之下,使用模块名加 _num 作为对应模块的 key,如"dataio_0"
所有数据需要通过Reader模块从数据存储拿取数据 (Reader模块仅有输出output)

//xxxx_dsl.json
{
  "components" : { 
		  "reader_0": {          //V1不用reader,直接用dataio
		      "module": "Reader",
		      "output": {
		          "data": ["train"]
			  }
		  }
  		  "dataio_0": {
		      "module": "DataIO",
		      "input": {
		          "data": {
		              "data": [
		                  "reader_0.train_data" //通过Reader模块拿数据
		              ]
		          }
		      },
		      "output": {
		          "data": ["train"],
		          "model": ["dataio"]
		      }
		  }

		  ...
     }
}

参数说明

  • module
    指定使用的模块,需要和 federatedml/conf/setting_conf 提供的各个模块的文件名保持一致

  • input
    分为两种输入类型,分别是 datamodel
    data:有四种可能的输入类型:
    * data(一般被用于data_io 模块、feature_engineering 模块或者 evaluation 模块)
    * train_data(一般被用于 homo_lr, heero_lr 和 secure_boost 模块,出现train_data的任务将会被识别为一个fit任务
    * validate_data(如果存在 train_data 字段,则 eval_data 指向的数据将会作为 validation set。若不存在 train_data 字段,则这个任务将被视作为一个predict 或 transform 任务
    * test_data(用作预测数据,如提供,需同时提供model输入)
    model:有两种可能的输入类型:
    * model(用于同种类型组件的模型输入)
    * isometric_model(用于指定继承上游组件的模型输入)

  • output
    和 input一样,有 data 和 model 两种类型
    data:有四种可能的输出类型:
    * data(常规模块数据输出)
    * train_data: 仅用于Data Split数据分割
    * validate_data: 仅用于Data Split
    * test_data: 仅用于Data Split
    model:只使用model

1.2.2 运行配置 Submit Runtime Conf

xxxxx_conf.json文件
设置各个参与方的信

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值