使用MistNet在COCO128数据集上协作训练Yolo-v5

本案例介绍如何在MNIST手写数字分类场景中,使用名为MistNet的聚合算法训练联邦学习作业。数据分散在不同的地方(如边缘节点、摄像头等),由于数据隐私和带宽的原因,无法在服务器上聚合。因此,我们不能将所有数据都用于训练。在某些情况下,边缘节点的计算资源有限,甚至没有训练能力。边缘无法从训练过程中获取更新的权重。因此,传统算法(例如,联合平均算法)通常聚合由不同边缘客户端训练的更新权重,在这种情况下无法工作。MistNet 被提议解决这个问题。

MistNet 将 DNN 模型分为两部分,边缘侧的轻量级特征提取器用于从原始数据生成有意义的特征,以及包含云中最多模型层的分类器,用于针对特定任务进行迭代训练。MistNet 实现了可接受的模型效用,同时大大减少了已发布的中间功能造成的隐私泄露。

物体检测实验

假设有两个边缘节点和一个云节点。由于隐私问题,边缘节点上的数据无法迁移到云中。基于此场景,我们将演示mnist示例

安装Sedna

使用MistNet在COCO128数据集上协作训练Yolo-v5_第1张图片

准备数据集

Create data interface for EDGE1_NODE.

mkdir -p /data/1
cd /data/1
wget https://github.com/ultralytics/yolov5/releases/download/v1.0/coco128.zip
unzip coco128.zip -d COCO

使用MistNet在COCO128数据集上协作训练Yolo-v5_第2张图片

Create data interface for EDGE2_NODE.

使用MistNet在COCO128数据集上协作训练Yolo-v5_第3张图片

准备镜像

此示例使用以下映像:
聚合工作器:kubeedge/sedna-example-federated-learning-mistnet-yolo-aggregator:v0.4.0
训练工作器:kubeedge/sedna-example-federated-learning-mistnet-yolo-client:v0.4.0
这些图像是由脚本build_images.sh生成的。

使用MistNet在COCO128数据集上协作训练Yolo-v5_第4张图片

创建联合学习作业

创建用于$EDGE1_NODE和$EDGE2_NODE的数据集

kubectl create -f - <
kubectl create -f - <

使用MistNet在COCO128数据集上协作训练Yolo-v5_第5张图片

创建模型
在 $EDGE 1_NODE 和 $EDGE 2_NODE 中创建目录 /model 和 /pretrained 。

mkdir -p /model
mkdir -p /pretrained

在$CLOUD_NODE主机上创建目录/model和/pretrained(下载链接在这里)

# on the cloud side
mkdir -p /model
mkdir -p /pretrained
cd /pretrained
wget https://kubeedge.obs.cn-north-1.myhuaweicloud.com/examples/yolov5_coco128_mistnet/yolov5.pth

使用MistNet在COCO128数据集上协作训练Yolo-v5_第6张图片

创建模型

kubectl create -f - <

使用MistNet在COCO128数据集上协作训练Yolo-v5_第7张图片

使用您的S3用户凭据创建一个密钥。(可选)

开始联邦学习

kubectl create -f - <

你可能感兴趣的:(联邦学习,YOLO,python,人工智能)