注:本文很长,择需阅览,未经许可,严禁转载!转载前请征得笔者本人许可

无脑操作流程

  • 注:本文很长,择需阅览,未经许可,严禁转载!转载前请征得笔者本人许可
  • 写在前面
  • 下载安装VMware WorkStation 16
  • 安装CentOS7(已安装的可以略过,这部分比较详细内容较多)
  • 安装python3(注意网络要保持连接)
  • 安装docker
  • Docker命令
  • 下载FATE项目
  • Fate命令
  • 横向联邦学习样例
  • 横向联邦学习样例
  • 写在最后
    • 特别感谢
    • 结尾

写在前面

假期在做服务外包竞赛,和联邦学习相关,所以写本篇(系列)博客,来记录自己的学习。
感谢指导我的学长zjj,本片博客的绝大部分内容也是出自他之手,是他引领一个真正的小白到现在一个略懂一二的小白。这里附上他csdn的主页链接(但是我现在好像还不知道55,等要到了一定在这里加上!)

废话不多说,我们现在开始吧!

下载安装VMware WorkStation 16

运行文件VMware-workstation-full-16.0.exe,根据提示完成操作即可。
密钥:(这个我就不提供了,dddd,动手自己搜搜吧)

安装CentOS7(已安装的可以略过,这部分比较详细内容较多)

此处安装的是CentOS7.9的版本

  1. 在主页点击“创建新的虚拟机”。也可以点击“文件”–>“新建虚拟机”

  2. 选中“自定义(高级)”后,点击“下一步”

  3. 默认即可,点击“下一步”

  4. 选择“稍后安装操作系统”,然后点击“下一步”

  5. 客户机操作系统选择Linux,版本选择CentOS7 64位,然后下一步

  6. 给虚拟机起名字,设置保存路径,然后下一步

  7. 配置处理器,试过单个处理器,系统太慢,建议多几个,下一步

  8. 分配内存,和cpu相似,给少了也卡,下一步

  9. 一般都选择NAT,默认即可,下一步

  10. 接下来一路默认直到指定磁盘容量,给多点,给FATE预留空间,下一步

  11. 一直默认下一步,最后点击完成。

  12. 在虚拟机中,点虚拟机–>设置–>CD/DVD(IDE),选择自己的映像文件,此处选择CentOS-7-x86_64-DVD-2009.iso即可

  13. 开启虚拟机,进入系统安装,按下回车后等待

  14. 方便学习与理解,选择中文

  15. 选择键盘,添加英语

  16. 磁盘分区点进去后直接点完成

  17. 选择“网络和主机名”,打开网络即可

  18. 选择“软件选择”安装软件

  19. 点击开始安装

  20. 设置密码,创建用户,用户可以不创建

  21. 等待,完成后,乖乖重启

  22. 许可点进去,点下同意、完成就好了

  23. 接下来一直前进,直到选择地区,选择上海

  24. 接着前进、跳过等,在“关于您”用英文写,前进

  25. 密码设置,前进

  26. 安装CentOS7系统完成

安装python3(注意网络要保持连接)

  1. 右键桌面打开终端
  2. 使用root权限
su
  1. 安装python3.6的一些依赖包
rm -f /var/run/yum.pid
yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sqlite-devel

出现下图结果就说明成功

  1. 下载python3.6.5
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz

  1. 解压到指定文件夹
tar -xzvf Python-3.6.5.tgz -C /usr/local

  1. 进入解压完的文件
cd /usr/local/Python-3.6.5

  1. 用yum安装gcc
yum install gcc

  1. 编译
./configure prefix=/usr/local/python3
make && make install

  1. 配置软链接
cd /usr/bin
mv python python.backup
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python3

  1. 把下列三个文件的第一行的python改为python2
    进入文件后,输入i,表示插入,最下方就会变成INSERT,这个时候就可以修改了。
    在修改文件内容之后,进行保存,按Esc+:+wq 回车保存
vim /usr/bin/yum
vim /usr/libexec/urlgrabber-ext-down
vim /usr/bin/yum-config-manager

安装docker

  1. 用yum安装软件包
yum install -y yum-utils device-mapper-persistent-data lvm2

  1. 安装Docker Engine-Community
    使用Docker仓库进行安装:
    在新主机上首次安装 Docker Engine-Community 之前,需要设置 Docker 仓库。
    之后,可以从仓库安装和更新 Docker。
yum install -y yum-utils \device-mapper-persistent-data \lvm2
  1. 设置稳定的仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

  1. 安装 Docker Engine-Community:
    要安装特定版本的 Docker Engine-Community,请在存储库中列出可用版本,然后选择并安装,步骤如下:
列出并排序您存储库中可用的版本。此示例按版本号(从高到低)对结果进行排序:
yum list docker-ce --showduplicates | sort -r
通过其完整的软件包名称安装特定版本,该软件包名称是软件包名称(docker-ce)加上版本字符串(第二列),从第一个冒号(:)一直到第一个连字符,并用连字符(-)分隔。例如:docker-ce-18.09.1:
yum install docker-ce-18.09.0 docker-ce-cli-18.09.0 containerd.io
启动并加入开机自启:
systemctl start docker
systemctl enable docker

通过运行 hello-world 映像来验证是否正确安装了 Docker Engine-Community
docker run hello-world
检查版本
docker -v
docker version

  1. 安装docker-compose
curl -L "https://github.com/docker/compose/releases/download/1.24.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

  1. 查看版本
chmod +x /usr/local/bin/docker-compose
docker-compose version

Docker命令

指令 作用
docker images 显示镜像
docker ps -a 查看当前系统中容器的列表。
docker ps -l 会列出最后一次运行的容器,包括正在运行和已经停止的。
docker start 启动一个或多个已经被停止的容器
docker stop 停止一个运行中的容器
docker rm 删除一个或多个容器
docker exec 在运行的容器中执行命令
docker restart 重启容器
docker stop [容器名称/容器ID] 停止容器运行

下载FATE项目

  1. 下载:
wget https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/docker_standalone_fate_1.6.0.tar.gz


或者将docker_standalone_fate_1.6.0.tar.gz直接从本机导入(推荐)

  1. 解压:
tar -xzvf docker_standalone_fate_1.6.0.tar.gz

  1. 部署:
cd docker_standalone_fate_1.6.0
bash install_standalone_docker.sh

  1. 单元测试:
CONTAINER_ID=`docker ps -aqf "name=fate"`
docker exec -t -i ${CONTAINER_ID} bash
bash ./python/federatedml/test/run_test.sh
  1. Toy测试:
CONTAINER_ID=`docker ps -aqf "name=fate"`
docker exec -t -i ${CONTAINER_ID} bash
python ./examples/toy_example/run_toy_example.py 10000 10000 0

Fate命令

  1. 查看Table
python python/fate_flow/fate_flow_client.py -f table_info -n experiment -t breast_homo_host
  1. 删除table
python fate_flow_client.py -f table_delete -n $namespace -t $table_name
python fate_flow_client.py -f table_delete -j $job_id
python python/fate_flow/fate_flow_client.py -f table_delete -n experiment -t breast_homo_host

横向联邦学习样例

  1. 上传训练数据
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/upload_data_host.json
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
  1. 提交训练任务
python  python/fate_flow/fate_flow_client.py -f submit_job -d /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_dsl.json  -c /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_conf.json
  1. 预测数据
python python/fate_flow/fate_flow_client.py -f submit_job -c /fate/examples/dsl/v1/homo_logistic_regression/test_predict_conf.json
记得修改test_predict_conf.json文件中的model_version: {jobid}

横向联邦学习样例

  1. 上传训练数据
python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/up_dt_guest.json -drop 1python python/fate_flow/fate_flow_client.py -f upload -c  /fate/examples/dsl/v1/homo_logistic_regression/up_dt_host.json -drop 1
  1. 训练任务
python  python/fate_flow/fate_flow_client.py -f submit_job -d /fate/examples/dsl/v1/hetero_logistic_regression/test_hetero_lr_train_job_dsl.json  -c /fate/examples/dsl/v1/hetero_logistic_regression/test_hetero_lr_train_job_conf.json
hetero_secureboost
hetero_secureboost
test_secureboost_train_dsl.json
test_secureboost_train_binary_conf.json
  1. 训练任务
python python/fate_flow/fate_flow_client.py -f submit_job -c /fate/examples/dsl/v1/hetero_logistic_regression/test_predict_conf.json
记得修改test_predict_conf.json文件中的model_version: {jobid}

写在最后

特别感谢

真正把全文打下来,我才认识到,当时zjj学长给我们制作教程的时候有多辛苦,实在是太累了!
学长的教程是以word形式展现的,为了更直观的展现、自己能够看的更方便,所以写下了这篇blog。

结尾

如果喜欢这篇文章的话,不妨点个赞收藏一下
有任何的问题都非常欢迎在评论区提出,一起讨论共同进步!
以后还会持续更新更多FATE学习进度

从新电脑开始构建FATE环境,图文并茂相关推荐

  1. 构建JSE 开发环境(图文并茂)

    前言 学习 Java 程序设计,同样需要方便易用的开发工具.Java 的开发工具很多,而且各有优缺点,初学者往往不知道有哪些常用的开发工具,或者由于面临的选择比较多而产生困惑. 要建立 Java 开发 ...

  2. 如何高性价比地构建GPU环境,实现GPU自由?

    Datawhale 主题:构建GPU环境 引言:要做深度学习,必然需要 GPU,如何构建一个弹性的 GPU 环境是很多读者关心和常问的问题,今天主要分享关于云服务器的选择. 由于购买GPU价格高昂,通 ...

  3. 《VMware vCAT权威指南:成功构建云环境的核心技术和方法》一3.6 vCloud计量

    本节书摘来自华章出版社<VMware vCAT权威指南:成功构建云环境的核心技术和方法>一书中的第3章,第3.6节,作(美)VMware vCAT 团队,更多章节内容可以访问云栖社区&qu ...

  4. 《VMware vCAT权威指南:成功构建云环境的核心技术和方法》一3.8 多站点考虑因素...

    本节书摘来自华章出版社<VMware vCAT权威指南:成功构建云环境的核心技术和方法>一书中的第3章,第3.8节,作(美)VMware vCAT 团队,更多章节内容可以访问云栖社区&qu ...

  5. 如何给MindSpore添加一个新的硬件后端?快速构建测试环境!

    摘要:介绍如何给MindSpore添加一个新的硬件后端. 本文分享自华为云社区<如何给MindSpore添加一个新的硬件后端?快速构建测试环境!>,原文作者:HWCloudAI. Mind ...

  6. 电脑怎么设计java环境_java环境变量配置,详细教您win7怎么配置java环境变量。

    据了解Java程序设计语言被广泛应用于PC.数据中心.游戏控制台.科学超级计算机.移动电话和互联网.而用java开发软件离不开java环境变量,那么win7下怎么配置java环境变量?下面,小编就来跟 ...

  7. 使用 IBM Bluemix 容器构建 Django 环境

    使用 IBM Bluemix 容器构建 Django 环境 创建用户 首先需要在 IBM Bluemix 上创建一个用户 创建成功用户,就可以访问 IBM Bluemix 的仪表板了 https:// ...

  8. 构建开发环境 构建demo_构建自己的wotsapp第6部分

    构建开发环境 构建demo I should start this article with a disclaimer: It is based on iOS 13, Swift 5, and Xco ...

  9. Dockerfile 构建python环境

    Dockerfile 构建python环境 构建步骤 编写一个dockerfile文件 通过docker build构建文件的一个镜像 docker run 运行镜像 具体步骤 首先,创建目录 pyt ...

  10. 问题一:操作系统是什么?你知道哪些操作系统?怎么看自己的操作系统?电脑上怎么找到环境变量?问题二:Java开发工具还有哪些?问题三:软件公司有哪些?

    问题一: <1>操作系统试什么? "操作系统(operating system,OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石.操作系统需要处理如管 ...

最新文章

  1. FPGA之道(27)VHDL的操作符号
  2. 50 调度器事件监听
  3. 【杂谈】如何在专家指导下系统性学习自然语言处理
  4. Python 定时调度
  5. 虚拟机没有域服务器,虚拟化现存域控制器
  6. php mysql 线程安全_PHP 线程安全与非线程安全版本的区别深入解析
  7. java 新浪短网址生成器,新浪短链接接口被限制?最新新浪短网址api接口
  8. 继爱奇艺后,腾讯视频会员也要涨价了
  9. 【Spark】Spark Class is not registered joins UnsafeHashedRelation kryo
  10. left join 大表放前面_带娃时,走在孩子前面与跟在孩子身后区别很大,很多父母都做错了...
  11. 「MYSQL」MYSQL中的int(11)到底代表什么意思?
  12. ezcad旋转轴标刻参数_激光打标机软件ezcad中菜单下的多文档标刻功能介绍及其操作设置...
  13. jenkins打包后文件通过ssh上传linux服务器配置
  14. PDF编辑方法,怎么删除PDF文档中的空白页
  15. 减少域名DNS解析时间将网页加载速度提升新层次
  16. windows10 给指定扩展名扩展名添加右键菜单
  17. hp服务器修改阵列,HP ProLiant 服务器 修改磁盘阵列的方法
  18. 51nod1635 第K个幸运排列
  19. 前端的工程化、模块化和组件化
  20. 2016华为软件精英挑战赛:赛题及其答疑汇总

热门文章

  1. [Maven实战-许晓斌]-[第二章]-2.6 NetBeans上面安装Maven插件
  2. Python学习之UnitTest【使用,生成HTML测试报告】
  3. RationalDMIS 2020定制报告(EXCEL)
  4. 一次旅行:汕尾-汕头-梅州
  5. exlc表格怎么换行_excel表格怎么换行_excel表格怎么换行上下换行
  6. 视频编码解码(H264中的profile和level)
  7. 使用html+css画一个波士顿凯尔特人的三叶草logo
  8. Java:基础 :集合和迭代器
  9. c语言中随机排序函数,利用随机函数产生N个随机整数(20000以上),对这些数进行多种方法进行排序。 用C语言编程...
  10. 牛客 送分啦-QAQ