联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试

相关链接

FATE官方库里面有详细的文档,支持中文!

前提

我是用docker安装部署的
所以要做一些准备

  1. docker换源
    Docker常用命令及换源
sudo nano /etc/docker/daemon.json
{
    "registry-mirrors":[
         "http://docker.mirrors.ustc.edu.cn",
         "http://hub-mirror.c.163.com",
         "http://registry.docker-cn.com"
    ] ,
    "insecure-registries":[
       "docker.mirrors.ustc.edu.cn",
         "registry.docker-cn.com"
    ]
}
systemctl restart docker.service

2.设置镜像管理
为了后期更好看日志,进入容器,所以使用一个管理docker的容器

docker run -d -p 9000:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --name portainer  docker.io/portainer/portainer

Docker安装

官方中文单机部署安装指南
我当前使用的是1.7.0版本的fate
1.配置环境并pull镜像
先加环境变量version,别担心,ssh关了这个就没了

export version=1.7.0
docker pull federatedai/standalone_fate:${version}

开始悠长的下载,可以先去喝杯咖啡。
2.启动

docker run -d --name standalone_fate -p 8080:8080 federatedai/standalone_fate:${version};

此时fate容器已经开启
http://yourIP:8080端口可以访问FateBoard,默认账户名和密码都是admin
进入容器

docker exec -it $(docker ps -aqf "name=standalone_fate") bash

或者你用9000端口那个容器进入
联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试_第1张图片
3.Toy测试
进入docker容器里面后,已经环境变量给你配置完毕了,直接用

flow test toy -gid 10000 -hid 10000

联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试_第2张图片
看到success输出说明ok了。
此时你也可以登陆FateBoard看效果 http://yourIP:8080
4.单元测试

fate_test unittest federatedml --yes

这个等待时间稍微有点长
看到出现

there are 0 failed test

说明ok了

开始MNIST数据集测试

进入fate容器
切换目录,保证你在这个目录下

cd /data/projects/fate/examples/dsl/v2/homo_nn/mnist_demo

readme.md写了教程,我只是按照步骤执行

  1. 下载mnist数据集
python ../../../../scripts/download_mnist_data_as_images.py

联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试_第3张图片
下载速度会很慢,此时用那个Portainer的命令行就会断连接,那么就用ssh中进行连接

docker exec -it $(docker ps -aqf "name=standalone_fate") bash

ps:下载实在太慢,推荐使用阿里云服务器啥的,网络会给你配置,学校服务器因为限制所以贼慢。

2.修改bind local path
mnist_demo文件夹里面有个bind_local_path.json文件
把里面$PROJECT_BASE改成你绝对路径
比如我现在在容器里,$PROJECT_BASE就是/data/projects/fate
提交

vi bind_local_path.json

联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试_第4张图片

flow table bind -c bind_local_path.json

联邦学习框架:FATE的安装使用,单机部署,使用MNIST测试_第5张图片
3.提交job
在这里也需要修改
主要就是mnist_conf.json文件里面的namespace和table_name要和bind_local_path.json里面对应相等

flow job submit -c mnist_conf.json -d mnist_dsl.json

此时可以登陆http://127.0.0.1:8080看你的job

完活

你可能感兴趣的:(FATE,联邦学习,联邦学习)