部署FedVision详细过程----手把手科研小白适用

1、准备工作:

Quickstart - FedVision这是官方部署教程,我们基本也是按照这个来,看他的要求就是你要有本地免密ssh这是最重要的,其次是你的python版本要大于3.9最好。

我是在Linux里面安装的,我是ubuntu20.04,首先先安装,然后配置openssh本地免密登录回环,这个可以看我之前发的那个:windows上部署本地SSH免密,不过那个是windows上的,说到这,放弃windows执念吧,家人们,如果你执意想部署windows上,你会走很多弯路,我这几天几乎一天只能看一篇论文或者解决一个问题,就是因为我有windows执念。

1.1 本地SSH免密配置

继续,首先sudo apt-get update一下,然后安装openssh-server这个网上都有教程,咱直接说你下载好更新好后了。(因为如果你配置时候都是一环套一环,你要相信我是今天才正式第一次接触linux在linux上部署东西,我都可以,你也可以。我本科通信,研究生才开始干计算机的活)

安装完后,就是经典操作:

  1. 先 ssh localhost 一下创建.ssh文件夹
  2. 再 ssh-keygen -t rsa 一下创建本地私钥和公钥
  3. 把公钥(.pub文件)复制一份重命名为authorized_keys放在.ssh文件夹内
  4. 你都不用去改config了,直接 ssh 12850@localhost,注意,12850是我的用户名,这应该改成你的用户名
  5. 注意,正常情况下,此时应该直接就进入服务器了,如下图:
  6. 当然输入exit然后回车就退出了,测试完毕
  7. 如果你碰到其他问题,打开config文件,就看我前面写的那个,照着我那个改,你就没问题

到此,本地SSH免密登录准备完成,接下来是Ubuntu的python安装

1.2 python3.9安装

由于Ubuntu不自带python包,所以我们要用apt-get去安装:

  1. sudo apt update
  2. sudo apt install python3.9

pip也别落下了:

  1. sudo apt install python3-pip
  2. pip3 --version

大功告成,接下来就是愉快的部署环节了。还有就是如何把下载源换成清华源,这个我就不说了,咱csdn看看,很多大佬都有说,你就搜Ubuntu20.04安装配置,有一个我记得老清晰了,教的老详细了,设置安装啥的。但是这个不重要,不行你就每个指令后面-i清华源就可以了。

2.部署过程

2.1 machine1配置:

  1. 首先应该建立虚拟环境:
    python3 -m venv venv

    这个venv就是你的虚拟环境名字,可以换,换成你喜欢的都可以,但是后面就要用你喜欢的这个名字启动哦

  2. 然后进入虚拟环境:

    source venv/bin/activate

    这个venv就是你刚才起的名字

  3. 进来后开始安装fedvision_tooltiks

    python -m pip install -U pip
    python -m pip install fedvision_deploy_toolkit

    如果说你pip版本不对或者语法不对,你就跟着提示改一下语法或者版本就行了,这个不会阻拦你,稍微搜一下也行。一般不会报错,这都是我亲自做过的,不会出错。

  4. 生成本地模板文件fedvision_standalone.yaml:

    fedvision-deploy template standalone

    这时候你的虚拟环境根目录会多一个文件,这个可以配置的,你可以打开看看,里面就是它的结构合组成,可以看看,但是别乱改,我研究研究,后面出一个讲讲都是干啥的,跟论文的一样不我到时候看看。

  5. 部署本地文件,这个最容易出错了,你ssh不通,或者没挂镜像源,或者权限不对,就会出错,这个你在这一步之前一定要ssh搞好,全局镜像搞了,权限一定正常,最容易出问题的就是前俩,后面是因为它部署后服务端要自己搞个venv的虚拟环境,如果它没权限。就会报错,出特别特别长的,如果你不幸遇到了,复制全部错误问GPT去,他会给你答案,让你改。

    fedvision-deploy deploy deploy standalone_template.yaml

    正常情况第一次运行他就会开始下载,下载好多后就显示:done,后面你再部署时候直接就是done

  6. 开启服务:

    fedvision-deploy services all start

    这个你会看到很多True,记住他的pid,后面你再重新开启服务时候一定要运行指令 sudo kill PID1 PID2 PID3 PID4 PID5 PID6, 不然再开启时候就会False

到这里,你已经很幸运地基本做完了80%,一起把下面的做完。

2.2 machines配置

  1. 切换到machines文件夹:
    cd /data/projects/fedvision

    因为要在这开启它里面的venv,你可以ls一下

  2. 打开machines的虚拟环境:

    source venv/bin/activate

    其实machines和machine1就好比一个服务器一个本地

  3. 把路径添加到python环境:

    export PYTHONPATH=$PYTHONPATH:/data/projects/fedvision/FedVision

    这一步干啥的我也不知道,加上吧

  4. 这个重点,最后一步,md我卡一下午,就是CSDN某搞FedVision部署流程总结那个哥,md人家正常端口是127.0.0.1:1002,他非要改成勾八1000,md太相信他了,最后自己一点一点啃,发现人tm是1002,他自己改了他不说,就这样给我干一下午,谢谢,还是得相信自己,主要联邦学习框架啥的资源太少了,很少人做这个感觉,资源也很少,我做这些也是想着贡献一点力量,一起努力吧。

    sh FedVision/examples/paddle_mnist/run.sh 127.0.0.1:10002

    就OK了,就看到结果了。说明部署成功,大功告成

3 接下来任务

我也不是很清楚,感觉他这次上交的work是百度paddle和minst结合的一个模型,应该联邦视觉就是把本地数据训练的模型就这样上传上去训练?我也不知道,后面看看官方文档,看看咋玩这个框架,复现几个FedVision的案例,我是想搞聚合算法创新改进的,看看到时候咋改。休息!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值