FATE数据上传、读取、训练、保存

news2025/1/15 19:36:05

fate如何安装?本文续这篇文章。

背景

fate是一个服务,还原联邦学习,所以分client和host两种身份,一般来说用户都是client,用户想要上传自己的数据,合并他人数据最终获得一个更好的模型,所以要“上传”数据。

在 FATE 框架中,横向联邦的场景被称为 homo,纵向的被称为 hetero,比如 纵向安全提升树模型就叫做 hetero secure boost。

上传

官方文档:https://fate.readthedocs.io/en/latest/tutorial/pipeline
强烈建议对着官方文档看我这个!

工具

FATE框架可以使用pipeline工具进行上传。

先下载fate_client,因为Pipeline是fate_client里的一个工具。

pip install fate_client

根据文档,想要使用pipeline,需要命令行配合使用

pipeline init --ip=xxx --port=xxx

先terminal里面对pipeline初始化才能使用pipeline,ip和port要跟FATE启动时的ip和port要对应,如果是standalone,那么ip是127.0.0.1,port一般是9380。

如果记不清fate的配置了,使用(暂时还没找到,等着补上

flow 

如果记不清pipeleine的配置了,使用

pipeline config show

查看

Python开发

python文件如下代码即可上传csv文件。
每一个上传的数据都会有自己的table_name和namespace,fate用这两个字段来命名区分每一个上传的数据。

from pipeline.backend.pipeline import PipeLine

pipeline = PipeLine() \
        .set_initiator(role='guest', party_id=9999) \
        .set_roles(guest=9999, host=10000) # what do guest and host stands for?


data_path='/root/Downloads/dummy.csv'
table_name='dummy'
namespace='dummy'
pipeline.add_upload_data(file=data_path,table_name=table_name,namespace=namespace)
pipeline.upload(drop=1) # what does drop=1 or 0 mean?

成功运行后,terminal会出现类似字样。在这里插入图片描述

从FATE服务中获得数据

官方文档:https://fate.readthedocs.io/en/latest/tutorial/pipeline/pipeline_tutorial_hetero_sbt/#install强烈建议对着官方文档看我这个!

文档中的sbt,其实就是Secure Boost Tree,一个决策树模型,因为使用了FATE,所以叫Secure。

工具

FATE中使用Reader类,从FATE框架中获得数据。

文档中说“load data”,我一开始以为load data是从本地load,汗!文档最好改成load data from FATE service……

使用Reader类获得数据后,可以使用DataTransform类进行变换。文档和代码有提,可以参考文档。使用Intersection可以获得两份数据的PSI值,根据Component文档,PSI是两份数据中交集程度的指标,FATE当然还提供了更多的函数,文档的代码只是举了一个PSI的例子。

Python

from pipeline.component import Reader, DataTransform, HeteroSecureBoost, Evaluation
from pipeline.interface import Data
# set pipeline operation party ids.
pipeline = PipeLine() \
        .set_initiator(role='guest', party_id=9999) \
        .set_roles(guest=9999, host=10000)

reader_0 = Reader(name="reader_0")
# bind reader operation tables
reader_0.get_party_instance(role='guest', party_id=9999).component_param(
    table={"name": "dummy", "namespace": "dummy"})

data_transform_0 = DataTransform(name="data_transform_0")
# bind transformation operation party
data_transform_0.get_party_instance(role='guest', party_id=9999).component_param(
    with_label=True)

# state a boost tree and evaluation
hetero_secureboost_0 = HeteroSecureBoost(name="hetero_secureboost_0",
                                         num_trees=5,
                                         bin_num=16,
                                         task_type="classification",
                                         objective_param={"objective": "cross_entropy"},
                                         encrypt_param={"method": "paillier"},
                                         tree_param={"max_depth": 3})
evaluation_0 = Evaluation(name="evaluation_0", eval_type="binary")


# add everyone into pipeline and ready for training
pipeline.add_component(reader_0)
pipeline.add_component(data_transform_0,data=Data(train_data=reader_0.output.data))
pipeline.add_component(hetero_secureboost_0, data=Data(train_data=data_transform_0.output.data))
pipeline.add_component(evaluation_0, data=Data(data=hetero_secureboost_0.output.data))
pipeline.compile()


# training
pipeline.fit()

# load another dataset via predict_pipeline
# predict_pipeline.predict()

# save results
pipeline.dump("pipeline_saved.pkl")

使用pipeline确认操作对象;
定义reader后绑定reader的对象,data_transform也是一样。
如何查看取出的数据具体是什么?(之后补上

如果训练失败了,python会提示,可以用fate board或者fate client查看。
fate board和fate client怎么使用?(之后补上

对于一个pipeline可以通过dump把所有信息保存到pkl中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

织梦文章无图自动出图配图插件支持采集

织梦文章无图自动出图配图插件的优点 1、提高文章的可读性和吸引力:插入图片可以丰富文章的内容和形式,增强读者的阅读体验和吸引力,提高文章的点击率和转化率。 2、节省时间和精力:手动添加图片需要花费大量时间和精力去寻找和…

浅谈cocos2dx渲染方式

场景的渲染 Node:visit 其作用是遍历整个场景渲染树。 部分代码如下 if(!_children.empty()) {sortAllChildren();// draw children zOrder < 0for(auto size _children.size(); i < size; i){auto node _children.at(i);if (node && node->_localZOrder…

HU4056H耐压高达28V,具有电源OVP功能的1A单节锂离子电池线性充电IC

产品概述 HU4056H是一款完整的采用恒定电流/恒定电压的高压、大电流、单节锂离子电池线性充电 IC。最高耐压可达 28V&#xff0c; 6.5V 自动过压保护&#xff0c;充电电流可达 1A。 由于采用了内部 PMOSFET 架构&#xff0c;加上防倒充电路&#xff0c;所以不需要外部隔离二…

【博学谷学习记录】超强总结,用心分享丨人工智能 机器学习 集成学习错题总结

目录题目1&#xff1a;下面关于提升树的说法哪个是正确的&#xff1f;题目2&#xff1a;下面关于随机森林和梯度提升集成方法的说法哪个是正确的&#xff1f;集成学习主要有哪几种框架&#xff1f;工作过程是&#xff1f;题目1&#xff1a;下面关于提升树的说法哪个是正确的&am…

亿发软件:钉钉移动ERP业务在线,审批、管理更方便!

钉钉系统是企业级智能移动办公平台&#xff0c;平台覆盖大中小微各量级企业&#xff0c;帮助中国企业移动办公管理。企业无需复杂的部署操作&#xff0c;在对应的功能制定流程和相关负责人即可。 亿发企业ERP管理系统于2022年与钉钉系统做了对接&#xff0c;提供一站式的企业管…

VIF-Benchmark: All infrare and visible image fusion method in one framework

VIF_Benchmark Github 地址: https://github.com/Linfeng-Tang/VIF-Benchmark 完整Project下载地址&#xff1a;https://download.csdn.net/download/fovever_/87514164 我们把所有主流的基于深度学习的红外和可见光图像融合方法都集成在了这个框架中。 这些方法包括&#xff1…

MM32开发教程(LED灯)

文章目录前言一、MM32介绍和STM32的区别二、板载LED灯原理图三、代码编写总结前言 今天将为大家介绍一款性能高体积小的MM32&#xff0c;这款开发板出自百问网团队。他就是灵动的MM32F3273&#xff0c;他体积非常小便于携带。 有128KB的SRAM、512KB的Flash、而且还支持双TypeC…

Mutual-Structure for Joint Filtering

以前的联合/引导滤波器将参考图像中的结构信息直接传输到目标图像&#xff0c;它的主要缺点&#xff1a;两个图像中可能存在完全不同的边缘。简单地将所有图像传递给目标可能会出错。 作者对结构不一致性问题&#xff0c;提出了相互结构的概念&#xff0c;以增强基于目标图像和…

【项目管理】始于需求,而终于需求的最终落地

每个产品都是需要一系列需求的慢慢搭建&#xff0c;并且需求对于一个产品来说是非常重要的&#xff1b;我们对需求进行分配以及执行&#xff0c;需要一整个团队的配合以及执行&#xff0c;才可以最终达到一个好的效果&#xff1b; 项目一般是由一系列的需求组成的&#xff0c;需…

548、RocketMQ详细入门教程系列 -【消息队列之 RocketMQ (二)】 2023.02.28

目录一、Java 访问 RocketMQ 实例1.1 引入依赖1.2 消息生产者1.3 消息消费者1.4 启动 Name Server1.5 启动 Broker1.6 运行 Consumer1.7 运行 Producer二、参考链接一、Java 访问 RocketMQ 实例 RocketMQ 目前支持 Java、C、Go 三种语言访问&#xff0c;按惯例以 Java 语言为例…

SQL数据库权限管理-10个数据库角色

为便于管理数据库中的权限&#xff0c;SQL 数据库提供了服务器角色、数据库角色、用户等来划分不同用户拥有的权限差异。今天给大家介绍数据库角色对应的权限。 数据库级角色 存在两种类型的数据库级角色&#xff1a; 数据库中预定义的“固定数据库角色”可以创建的“用户定…

CSO面对面丨中核华辉刘博:应对大型央国企数字化转型道路上必须攻克的安全难题

“极致”&#xff0c;一直是大型央国企网络安全工作建设追求的目标。随着我国数字化转型全面走深向实&#xff0c;网络安全风险、数据管理、层出不穷的网络攻击&#xff0c;为各领域大型央国企数字化转型带来了更多的挑战。如何充分发挥优势、携手各方构筑网络安全屏障、提升安…

Codeforces Round #854 by cybercats (Div. 1 + Div. 2)

A. Recent Actions给出n个格子&#xff0c;从上到下是1~n&#xff0c;其他的n1~。。。不在格子内。给出m个操作&#xff0c;若该操作的数字不在格子内&#xff0c;那就将它拿到格子的第一个位置&#xff0c;同时格子第n个位置的数被挤下去&#xff1b;若操作的数字在格子内&…

Java简单的生成/解析二维码(zxing qrcode)

Hi I’m Shendi Java简单的生成/解析二维码&#xff08;zxing qrcode&#xff09; 在之前使用 qrcode.js 方式生成二维码&#xff0c;但在不同设备上难免会有一些兼容问题&#xff0c;于是改为后端&#xff08;Java&#xff09;生成二维码图片 这里使用 Google 的 zxing包 Jar…

基于STM32的DHT11温湿度控制系统仿真设计

基于STM32的DHT11温湿度控制系统仿真设计(仿真程序报告讲解&#xff09;演示视频1.主要功能2.仿真3. 程序4. 设计报告1主控制器选择5.设计内容 百度云网盘下载链接仿真图proteus 8.9程序编译器&#xff1a;keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;C0076 演示…

Android Qcom Display学习(十三)

该系列文章总目录链接与各部分简介&#xff1a; Android Qcom Display学习(零) 在上一篇中dump GraphicBuffer中&#xff0c;知道了护眼模式中调用setColorTransform应用于每一层Layer&#xff0c;于是想往上了解一些&#xff0c;color是针对屏幕的&#xff0c;不是对单个Layer…

[YOLO] yolo博客笔记汇总(自用

pip下载速度太慢&#xff0c;国内镜像&#xff1a; 国内镜像解决pip下载太慢https://blog.csdn.net/weixin_51995286/article/details/113972534​​​​​​​ YOLO v2和V3 关于设置生成anchorbox&#xff0c;Boundingbox边框回归的过程详细解读 YOLO v2和V3 关于设置生成an…

Airbnb系列三《Managing Diversity in Airbnb Search》 搜索多样性

abstract 搜索系统中一个长期的问题是结果多样性。从产品角度讲&#xff0c;给用户多种多样的选择&#xff0c;有助于提升用户体验及业务指标。 多样性需求和模型的目标是相矛盾的&#xff0c;因为传统ctr模型是 point wise&#xff0c;只看单个相关性不管相邻之间item差异。 …

Jvisualvm监控Tomcat以及相关参数优化

Tomcat阻塞模式 阻塞模式&#xff08;BIO&#xff09; 客户端和服务器创建一个连接&#xff0c;它就会创建一个线程来处理这个连接&#xff0c;以为这客户端创建了几个连接&#xff0c;服务端就需要创建几个线程来处理你&#xff0c;导致线程会产生很多&#xff0c;有很多线程…

数学小课堂:无穷小(平均速度和瞬间速度的关系)

文章目录 引言I 速度1.1 平均速度1.2 瞬间速度(某一时刻特定的速度)1.3 解释飞箭是静止的悖论II 导数2.1 概念2.2 导数的现实影响2.3 微积分的意义III 无穷小3.1 贝克莱挑战牛顿(无穷小悖论)3.2 无穷小的定义引言 柯西和魏尔斯特拉斯给出的无穷小的定义: 它不是零;它的绝对…